前言
这个本来是三个实验题然后我把它合成了两个,但是代码质量不是很好,本篇文章能提供的只是思路上的参照,第二个实验的代码有问题待解决。
实验一
编写两个JSP页面分别为login.jsp和checklogin.jsp,login.jsp页面提供一个表单,分别在两个文本框输入用户名和密码,表单提交至checklogin.jsp页面,checklogin.jsp页面实现登录验证。要求如果用户名或密码为空则重定向至login页面重新填写用户登录信息,如果用户名或密码都不为空,再checklogin页面进行正常地登录验证,并将该页面的浏览方式动态设置为word。Session内置对象实现授权页面或避免用户重复登录功能!
代码
- login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
<title>用户登录</title>
</head>
<body>
<br/>
<form action="checklogin.jsp" method="POST">
<table border="1" width="500px" align="center">
<th colspan="2">用户登录</th>
<tr>
<td>用户名</td>
<td><input type="text" name="names" /></td>
</tr>
<tr>
<td>密码</td>
<td> <input type="password" name="password" /></td>
</tr>
<tr>
<td><input type="submit" value="提交" /></td>
<td><input type="reset" value="重置" /></td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="重新生成session" onclick="<% session.invalidate();%> window.location.reload();" />
<%
String id=session.getId();
out.println("<br/>session为:"+ id);
%></td>
</tr>
</table>
</form>
<%
String names=request.getParameter("names");
if (names==null) {
names="";
}
else
session.setAttribute("names",names);
%>
</body>
</html>
- checklogin.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head></head>
<body>
<%
String user = request.getParameter("names");
String password = request.getParameter("password");
String id=session.getId();
if (user.equals("computer")) {
if (password.equals("jsp")) {
if (session.isNew()){
out.print("Success!");
response.setContentType("application/msword;charst=UTF-8");
response.setHeader("Content-Disposition","attachment;filename=Test.doc");
response.getWriter().println(new String(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF }));
} else {
out.print("chongfu");
}
}
else
{
response.sendRedirect("login.jsp");
}
}//第一层判断结束
else
{
response.sendRedirect("login.jsp");
}
%>
</body>
</html>
实验二
Session内置对象实现简单购物车注意:本代码还有问题没有解决,中文会乱码。单独运行c.jsp不能运行。
代码
- a.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
<br>输入姓名:<a href="a.jsp">确认姓名页面</a>
<br>选择图书:<a href="b.jsp">选择图书页面</a>
<br>结账:<a href="c.jsp">结账页面</a>
</head>
<body>
<font size=3>
<p>输入姓名</p>
<form action="" method="POST" name="form">
<input type="text" name="form" />
<input type="submit" value="确定" name="submit" />
</form>
<% String name = request.getParameter("name");
if(name == null)
name = "";
else
session.setAttribute("name",name); //将用户的名字存入session
%>
</font>
</body>
</html>
- b.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
<br>输入姓名:<a href="a.jsp">确认姓名页面</a>
<br>选择图书:<a href="b.jsp">选择图书页面</a>
<br>结账:<a href="c.jsp">结账页面</a>
</head>
<body>
<font size=2>
<form action="" method="post" name="form">
<input type="checkbox" name="choice" value="Java教程32.5元">Java教程32.5元
<input type="checkbox" name="choice" value="数据库原理23元">数据库原理23元<br>
<input type="checkbox" name="choice" value="操作系统35元">操作系统35元
<input type="checkbox" name="choice" value="C语言教程28.6元">C语言教程28.6元<br>
<input type="submit" value="提交" name="submit">
</form>
<% String book[]=request.getParameterValues("choice");
if(book!=null){
StringBuffer str = new StringBuffer();
for(int k = 0;k<book.length;k++){
str.append(book[k] + "<br>");
}
session.setAttribute("book",str);
}
%>
</font>
</body>
</html>
- c.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
<br>输入姓名:<a href="a.jsp">确认姓名页面</a>
<br>选择图书:<a href="b.jsp">选择图书页面</a>
<br>结账:<a href="c.jsp">结账页面</a>
</head>
<body>
<%! public String handleStr(String s){
try {
byte[] bb = s.getBytes("iso-8859-1");
s = new String(bb);
}
catch(Exception exp){}
return s;
}
%>
<font size=2>
<% String personName = (String) session.getAttribute("name");
StringBuffer bookMess = null;
if(personName == null || personName.length() == 0){
out.println("到名字输入页面输入姓名");
}
else{
bookMess = (StringBuffer)session.getAttribute("book");
}
%>
<%
String buyBook = new String(bookMess); //这里总是报错,问题还没有解决。
double sum = 0;
String [] price = buyBook.split("[^0123456789.]" );
if(price!=null){
for(String item:price)
try{
sum += Double.parseDouble(item);
}
catch(NumberFormatException exp){}
}
%>
<br>
<%= handleStr(personName) %>购书信息:<br>
<%= handleStr(buyBook) %><br> 总价格:
<%= sum %>
</font>
</body>
</html>