例题:
1.制作login.jsp页面,要求实现提供用户登陆的界面,
用户通过该界面输入用户名(控件名userName)和密码(控件名password),
然后点击“登录”按钮实现登陆操作.
2.制作welcome.jsp页面,要求在该页面中显示合法用户成功登陆的提示信息,
信息格式如下:“用户,密码为,欢迎您于*时间访问本页面。”
3.设计并实现LoginServlet类,通过该类获取login.jsp中提交的登陆信息。
合法用户登陆时要求获取用户登陆的时间,并通过RequestDispatcher对象将成功登陆的提示信息转发到welcome.jsp页面,
非法用户登陆时重定向到login.jsp页面,让用户重新登录。
4.合法用户只有一名,用户名为“TOM”,密码为“123456”。
这里我用到的开发工具是Intellij idea 2017.3创建项目如图
创建login.jsp
<%--
Created by IntelliJ IDEA.
User: SugarMan
Date: 2017/12/18
Time: 上午10:37
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<html>
<head>
<title>登录</title>
</head>
<body>
${requestScope.info}
<form action="first" method="post">
姓名:<input type="text" name="userName"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
first.java代码
package Servlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
public class first extends HttpServlet {
protected void doPost(HttpServletRequest request,
ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("userName");
String password =
request.getParameter("password");
String info = "";
request.setAttribute("userName",name);
request.setAttribute("password",password);
if (name.equals("TOM") && password.equals("123456")) {
info = name + "用户,密码为:" + password +
",欢迎您于" + new Date() + "时间访问本页面";
request.setAttribute("info",info);
//此方法重新定向的地址为web.xml里servlet的地址
request.getRequestDispatcher("welcome.jsp");
dispatcher.forward(request,response);
} else {
info = "用户密码输入错误";
request.setAttribute("info",info);//向req保存info信息
RequestDispatcher dispatcher =
request.getRequestDispatcher("login.jsp");
dispatcher.forward(request,response);//重定向转发
}
}
}
PS:这里为什么我没有用LoginServlet来命名呢,因为我试过用这个名称命名,却发现在form表单里找不到它,重启服务器,清除idea缓存都不行,无奈只好用其他名称命名了,如果有小伙伴解决了这个问题可以告诉我哦!
welcome.jsp代码
<%--
Created by IntelliJ IDEA.
User: SugarMan
Date: 2017/12/18
Time: 上午10:42
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<html>
<head>
<title>欢迎</title>
</head>
<body>
${requestScope.info}
</body>
</html>
PS:这个EL表达式真心方便