开发环境
eclipse、tomcat8.5、jdk1.8
功能
1.实现登录界面:用户名,密码,登录按钮
2.使用servlet获取登录界面的属性值判断是否正确
3.实现登录成功界面:实现回到登录界面的功能
项目结构
login.jsp(登录界面)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>登录界面</title>
</head>
<body>
<div><%--post方式提交数据到servlet --%>
<form action="<%=request.getContextPath()%>/LoginServlet" method="post">
<label>用户名:</label>
<input type="text" name="userName" value="${param.userName}"/><br><br>
<label>密码:</label>
<input type="password" name="password"/><br>
<font color="red">
<%--判断message属性是否为null --%>
<%
if(request.getAttribute("message")!= null){
out.print(request.getAttribute("message"));
}
%>
</font>
<div id="submit">
<input type="submit" value="登录"/>
</div>
</form>
</div>
</body>
Hello.jsp(成功登录界面)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>你好界面</title>
</head>
<body>
<font color="blue" size="22">
<%
out.print(request.getParameter("userName")+"你好,欢迎来到我的世界!<br>");
%>
</font>
<%--重定向回到登录界面--%>
<a href="<%=request.getContextPath()%>/login.jsp">重新登录</a>
</body>
Servlet界面
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
System.err.println(userName+";"+password);
//设置用户名和密码
String myUser = "zhangsan";
String myPwd = "123";
//判断用户名和密码是否正确
if(myUser.equals(userName)) {
if(myPwd.equals(password)){
//重定向
response.sendRedirect(request.getContextPath()+"/hello.jsp?userName="+userName);
System.err.println("登录成功");
}else {
request.setAttribute("message", "密码错误,请重新登录<br>");
//转发
request.getRequestDispatcher("/login.jsp").forward(request, response);
System.err.println("登录失败");
}
}else {
request.setAttribute("message", "用户名错误,请重新登录<br>");
request.getRequestDispatcher("/login.jsp").forward(request, response);
System.err.println("登录失败");
}
}
}
Web.xml搭建
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Welcome</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
效果图展示
登录界面
判断账号密码效果图
成功登录界面
点击重新登录后,它就会重定向于login界面
总结
在做这个项目期间还发现了转发与重定向的问题,还有web.xml的配置问题,希望下次能够做出更好的代码