实现简单的登录和返回用户列表
1.视图层
(1)Login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<div style="margin-top: 100px;margin-left:500px; text-align: right;height: 200px;width: 300px">
<form action="/web01/login" method="post">
用户名:<input type="text" name="name"/><br/>
密 码:<input type="password" name="password"/><br/>
<input type="submit" value="登录"/>
</form>
</div>
</body>
</html>
(2)users.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*,com.neu.bean.User" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户信息表</title>
<style type="text/css">
td{
border: 1px solid;
background-color: white;
width: 140px;
height: 30px;
text-align: center;
}
</style>
</head>
<body>
<div style="font-family: 楷体;text-align: center;width: 18.75rem;height: 12.5rem;border: 1px solid;margin-top: 18%;margin-left: 40%;background-color: #00FFFF;">
用户信息列表
<table style="border: 1px solid;margin-left: 3px;">
<tr>
<td style="border: 1px solid;">用户名</td><td style="border: 1px solid;">密码</td>
</tr>
<%
List<User> users= (ArrayList<User>) request.getAttribute("userlist");
for(User us:users){
%>
<tr>
<td><%=us.getUserName()%></td>
<td><%=us.getPassword() %></td>
</tr>
<%
}
%>
<tr></tr>
</table>
</div>
</body>
</html>
2.控制层
1.User.java
package com.neu.bean;
import java.io.Serializable;
public class User implements Serializable {
private String id;
private String userName;
private String password;
public User() {
super();
}
public User(String userName, String password) {
this.userName = userName;
this.password = password;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
}
2.DButil.java
package com.neu.util;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
public class DBUtil {
public static Connection getConnection() {
String Url = "jdbc:mysql://localhost:3306/xwebdb";
String User = "root";
String Password = "505489";
String driver="com.mysql.jdbc.Driver";
Connection con=null;
/*加载驱动*/
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
System.out.println("加载驱动异常");
e.printStackTrace();
}
try {
con=(Connection) DriverManager.getConnection(Url,User,Password);
if(con!=null){
System.out.println("数据库连接成功");
}
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
}
3.UserDao.java
package com.neu.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.neu.bean.User;
import com.neu.util.DBUtil;
public class UserDao {
//将获取到的DBUtil类里的getConnection()方法并将其定义为私有
private Connection con=DBUtil.getConnection();
//通过名字进行索引返回用户名和密码
public User getUserByName(String name){
String sql="select * from user wher userName=?";
//创建user对象,并将其置为空
User user=null;
try{
//进行预编译处理
PreparedStatement pst=con.prepareStatement(sql);
//设置索引值为Login.jsp中name属性为name的变量
pst.setString(1,name);
//进行结果返回
ResultSet rs=pst.execteQuery();
//若查询结果存在
if(rs.next()){
//创建User对象
user=new User();
//将查询到的结果返回给UseBean中的setter方法保存
user.setUserName(rs.getString("userName"));
user.setPassword(rs.getString("password"));
}
//关流
rs.close();
pst.close();
con.close();
}catch(SQLException e){
e.printStackTrace();
}
//返回User对象
return user;
}
//得到数组集合内的内容
public List<User> getAll(){
//进行对整个表进行查询
String sql="select * from user";
//创建数组集合内的内容
List<User> users=new ArrayList<User>();
try{
PreparedStatement pst=con.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){
//不断创建新的User对象
User user=new User();
/将查询到的结果返回给UseBean中的setter方法保存
user.setUserName(rs.getString("userName"));
user.setPassword(rs.getString("password"));
//采用add方法向数组集合添加内容
users.add(user);
}
rs.close();
pst.close();
con.close();
}catch(SQLException e){
e.printStackTrace();
}
//返回数组集合
return users;
}
}
4.UserService.java
package com.neu.dao;
import java.util.List;
import com.neu.bean.User;
public class UserService {
public User getUser(String name){
//创建User对象并调用UserDao类中的getUserByName()方法
User user=new UserDao().getUserByName(name);
return user;
}
public List<User> getdata(){
//创建User对象并调用UserDao类中的getAll()方法
List<User> users=new UserDao().getAll();
return users;
}
5.LoginServlet.java
package com.neu.servlet;
import java.io.IOException;
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 javax.servlet.http.HttpSession;
import com.neu.bean.User;
import com.neu.dao.UserService;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//设置字符集
response.setContentType("text/html;charset=utf-8");
//得到Login.jsp中通过request对象中的getParameter()方法获得的返回值
String name=request.getParameter("name");
String name=request.getParameter("password");
//创建User对象并调用UserService.java中的getUser()方法,进行对数据库中用户名进行查找;
User user=new UserService().getUser(name);
//创建一个Session对象用于保存数据
HttpSession session=request.getSession();
//对对象内容,即在UserDao中是否获得用户名进行判空
if(user!=null){
//若前台页面中的数值等于User类中保存的数据(密码是否相等)
if(pwd.equals(user.getPassword())){
//则将jsp页面中的name属性保存到session对象中,并进行重定向到用户显示users.jsp表中
session.setAttribute("user",name);
response.sendRedirect("/web01/users.jsp");
}else{
//否则重定向回登录页面
response.sendRedirect("/web01/wabapp/login.jsp");
}
}else{//其余情况也重定向回登录页面
response.sendRedirect("/web01/webapp/login.jsp");
}
}
6.UserServlet.java
package com.neu.servlet;
import java.io.IOException;
import java.util.List;
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 javax.servlet.http.HttpSession;
import com.neu.bean.User;
import com.neu.dao.UserService;
/**
* Servlet implementation class UserServlet
*/
@WebServlet("/users")
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UserServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建Session对象,并获取LoginServlet.java中用户和密码正确时保存的name属性
HttpSession session=request.getSession();
String user=(String)session.getAttribute("user");
/*当用户名不为空时,创建UserService对象并调用其中的getdata()方法将集合保存到集合对象userlist当中并进行请求转发*/
if(user!=null){
UserService us=new UserService();
List<User> userlist=us.getdata();
request.setAttribute("userlist", userlist);
request.getRequestDispatcher("/webapp/users.jsp").forward(request, response);
}else{
//否则重定向回登录页面
response.sendRedirect("/web01/webapp/login.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
7.users.jsp
创建集合对象并从request对象中获取集合并赋值再进行遍历
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*,com.neu.bean.User" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户信息表</title>
<style type="text/css">
td{
border: 1px solid;
background-color: white;
width: 140px;
height: 30px;
text-align: center;
}
</style>
</head>
<body>
<div style="font-family: 楷体;text-align: center;width: 18.75rem;height: 12.5rem;border: 1px solid;margin-top: 18%;margin-left: 40%;background-color: #00FFFF;">
用户信息列表
<table style="border: 1px solid;margin-left: 3px;">
<tr>
<td style="border: 1px solid;">用户名</td><td style="border: 1px solid;">密码</td>
</tr>
<%
List<User> users= (ArrayList<User>) request.getAttribute("userlist");
for(User us:users){
%>
<tr>
<td><%=us.getUserName()%></td>
<td><%=us.getPassword() %></td>
</tr>
<%
}
%>
<tr></tr>
</table>
</div>
</body>
</html>