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

该博客介绍了如何使用JavaBean、JSP和Session来实现一个简单的登录系统。用户通过form.jsp界面输入用户名和密码,doForm.jsp负责验证登录信息,如果正确则重定向到messageBoard.jsp进行留言。留言信息在showMessage.jsp上展示。关键点包括在doForm.jsp中使用Session存储用户信息,以及在showMessage.jsp中解决乱码问题并从Session中获取用户数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

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");
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值