Java Web MVC設計模式


實現簡單的登錄和返回用戶列表

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/>
密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;碼:<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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM