发布时间:2023-04-28 文章分类:WEB开发, 电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

需求

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界面

JSP实验:实现留言板功能,显示留言者和留言内容
JSP实验:实现留言板功能,显示留言者和留言内容

正确输入admin和密码123跳转到留言界面

提交到留言展示界面

JSP实验:实现留言板功能,显示留言者和留言内容

几个需要注意的点

①在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");