需求
form.jsp为登录界面、为账号密码创建JavaBean、doForm.jsp(无界面)为登录处理,假定正确的用户名为admin,口令为123,用户输入正确则重定向到messageBoard.jsp(留言板页面),进行留言。错误则返回到登录界面。showMessage.jsp实现留言展示功能,展示留言者、留言标题、留言内容。
user的JavaBean代码
public class User {
public String username;
public String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
登录界面form.jsp代码
<form action="doForm.jsp" method="post">
<ul>
<li>用户名:<input type="text" name="username"></li>
<li>口令:<input type="password" name="password"></li>
<li><input type="submit" value="提交"> <input type="reset" value="取消"></li>
</ul>
</form>
doForm.jsp处理界面:
<body>
<%--判断用户名密码对不对 正确存起来 错误请求转发到原来的界面--%>
<%
User user = new User();
HttpSession session1 = request.getSession();
String username = request.getParameter("username");
String password = request.getParameter("password");
if("admin".equals(username) && "123".equals(password)){
user.setUsername(username);
user.setPassword(password);
session1.setAttribute("user",user);
response.sendRedirect("messageBoard.jsp");
}else {
request.getRequestDispatcher("form.jsp").forward(request,response);
System.out.println("登录错误");
}
%>
</body>
MessageBoard.jsp留言板
<body>
<%
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8"); //解决乱码问题
String tittle = request.getParameter("tittle");
String context = request.getParameter("context");
User user = (User) request.getSession().getAttribute("user");
%>
留言者:<%=user.getUsername()%><br>
留言标题:<%=tittle%><br>
留言内容:<%=context%>
</body>
showMessage.jsp展示留言界面
<body>
<%
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8"); //解决乱码问题
String tittle = request.getParameter("tittle");
String context = request.getParameter("context");
User user = (User) request.getSession().getAttribute("user");
%>
留言者:<%=user.getUsername()%><br>
留言标题:<%=tittle%><br>
留言内容:<%=context%>
</body>
运行结果
输入登录地址
输入错误重新跳转到form.jsp界面
正确输入admin和密码123跳转到留言界面
提交到留言展示界面
几个需要注意的点
①在doForm.jsp中,将用户信息使用session存起来
User user = new User();后
不要忘记将值存进去,这就是我一直疑惑怎么输出为null
user.setUsername(username);//将username存进去
user.setPassword(password);//将password存进去
session.setAttribute("user",user); //将用户的信息存入session
②在showMessage.jsp中,解决乱码问题(粘进去就行)
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8"); //解决乱码问题
③在showMessage.jsp中,使用session的getAttribute()方法获取user的值时,记得要类型转换。
User user = (User) request.getSession().getAttribute("user");