实 验 报 告
实验名称 Servlet基础 日期 2020年 10 月20 日
一、实验目的:
1、理解Servlet的工作原理;
2、掌握javabean在web程序中的应用;
3、掌握基于Servlet的MVC模式;
二、实验环境:
Eclipse
三、实验内容:
1、参考教材P142的例子,使用JSP、Servlet、JavaBean实现基于MVC模式的用户登录验证程序。
2、完成上述实验的基础上可以加入图片验证码、自动登录、注销等额外的功能。
程序代码:
User.java
package dto;
public class User {
private String name;
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd=pwd;
}
}
Usercheck.java
package service;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import dto.User;
public class UserCheck {
//验证登录
public boolean validate(User user) {
if(user != null && user.getName().equals("Luomeng")) {
if(user.getPwd().equals("3182052051219") ) {
return true;
}
return false;
}
return false;
}
/**
* 验证用户输入的验证码输入的是否正确
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public boolean checkValidationCode(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean flag=true;
HttpSession session=request.getSession();
String validationRightCode=(String)session.getAttribute("vcode");
String validationUserCode=request.getParameter("validationCode");
if(!validationRightCode.equals(validationUserCode)){
request.setAttribute("information","验证码输入不正确!");
flag=false;
RequestDispatcher rd=request.getRequestDispatcher("");
rd.forward(request, response);
}
return flag;
}
}
LoginCheckServlet.java
package servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import service.UserCheck;
import dto.User;
@WebServlet(name="loginCheckServlet",urlPatterns= {"/loginCheckServlet"})
public class LoginCheckServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
User user = new User();
user.setName(name);
user.setPwd(pwd);
UserCheck uc = new UserCheck();
if(uc.validate(user)) {
request.setAttribute("user", user);
RequestDispatcher dis = request.getRequestDispatcher("loginSuccess.jsp");
dis.forward(request, response);
}
else {
response.sendRedirect("loginCheck.jsp");
}
}
}
loginCheck.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>loginCheck.jsp</title>
</head>
<body>
<script language="javascript">
function changeCode() {
document.getElementById('checkImg').src = 'GetCaptcha?temp='+ (new Date().getTime().toString(36));
return false;
}
</script>
<form action="loginCheckServlet" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="name"/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd"/></td>
</tr>
<tr>
<td>验证码:</td>
<td>
<input type="text" maxlength="113" οnmοuseοver="this.style.background='pink'" οnmοuseοut="this.style.background='white'">
<img src="GetCaptcha" alt="验证码" name="checkImg" id="checkImg" onClick="changeCode()" />
</td>
</tr>
<tr>
<td><input type="submit" value="提交"/></td>
<td><input type="reset" value="重置"/></td>
</tr>
</table>
</form>
</body>
</html>
loginSuccess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>loginSuccess.jsp</title>
</head>
<body>
<jsp:useBean id="user" type="dto.User" scope="request"/>
恭喜<jsp:getProperty property="name" name="user"/>登陆成功!
</body>
</html>
运行截图:
四、心得体会:
通过此次实验,理解了Servlet的工作原理;掌握了javabean在web程序中的应用;掌握基于Servlet的MVC模式;