一个简单的javaWeb项目
因为之前学习了servlet与数据库的技术所以就根据学的写一个web项目。虽然servlet是一个将被淘汰的技术,但是对后续框架的学习也有好处。
这个项目就叫做”人员基本信息储存“吧
本次我是用的是 Maven工具,就不需要手动导包了,直接添加依赖就好
注意: 打包类型是
war
包
<dependencies>
<!-- junit 测试@Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
<!-- 工具类依赖 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<!-- 连接池的依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
<!-- oracle驱动依赖 -->
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
<!-- 日志依赖 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- servlet依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!-- jsp依赖 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
<!-- jstl依赖 -->
<dependency>
<groupId>Javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<!-- build用来配置编译时的信息 -->
<build>
<!-- 配置编译项目时需要的插件 -->
<plugins>
<!-- 配置maven编译插件 设置jdk版本为1.8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
一、需求
- 在网页上展示所有数据(人员的编号、姓名、年龄和性别)
- 可以在展示页面上对信息进行删除、修改与添加
- 删除与修改功能只能由管理员进行操作
二、准备
1、封装数据库链接
package com.briup.util;
import java.sql.Connection;
import com.alibaba.druid.pool.DruidDataSource;
/*
*这个连接我用的是数据库连接池负责分配、管理和释放数据库连接,
*它允许应用程序重复使用一个现有的数据库连接
*/
public class OracleConnection {
private static DruidDataSource dataSource;
static {
dataSource = new DruidDataSource();
dataSource.setDriverClassName("oracle.jdbc.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@127.0.0.1:1521:XE");
dataSource.setUsername("web");
dataSource.setPassword("web");
//连接数据库的初始值
dataSource.setInitialSize(3);
//连接数量的最高上限
dataSource.setMaxActive(6);
}
public static Connection getConnection(boolean autoCommit) {
Connection connection = null;
try {
connection = dataSource.getConnection();
connection.setAutoCommit(autoCommit);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
public static Connection getConnection() {
return getConnection(false);
}
}
2、数据库建表
我们要向数据库中添加数据,所以就要有一个对应的表格
1.在数据库中编写建表语句
--删除表 确定数据库中没有此命名的表格
drop table t_user;
--创建t_user表
create table t_user(
id number primary key,
name varchar2(20) not null,
age number,
gender varchar2(10)
);
--查询表中的所有数据
select * from t_user;
3、创建一个实例类
1.user的实例类
package com.briup.bean;
public class User {
private long id;
private String name;
private int age;
private String gender;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(long id, String name, int age, String gender) {
super();
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + ", gender=" + gender + "]";
}
}
2.管理员的实例类
package com.briup.bean;
/*
*因为管理员就一个,所以就不存数据库了
*直接将数据固定
*并且在实例类中不提供setting方法与toString方法
*这样管理员数据就不可以在外部修改与查询
*/
public class Loginer {
private String name = "jt";
private String password = "123456";
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public Loginer() {
// TODO Auto-generated constructor stub
}
public Loginer(String name, String password) {
this.name = name;
this.password = password;
}
public Loginer(String name) {
this.name = name;
}
}
三、静态资源
我们要通过浏览器对数据进行操作,所以要有几个对应的静态页面
1、展示数据的页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ request.getContextPath() + "/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>showusers</title>
<style type="text/css">
#msg{
background: #FFDDCC;
width: 300px;
margin-left: 620px;
margin-top: 150px;
}
#table {
background: #FFDDCC;
width:300px;
margin-left: 620px;
}
</style>
</head>
<body>
<div id="msg">
<table border="0" align="center">
<tr>
<td align="center"><font color="red" face="Verdana" size="+1">
图书列表 ${sessionScope.msg}
<a href="adduser.jsp">添加用户</a>
</font>
</td>
<c:remove var="msg" scope="session" />
</tr>
</table>
</div>
<div id="table">
<table border="1">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>操作</th>
</tr>
<c:forEach var="user" items="${applicationScope.users}"
varStatus="status">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.gender}</td>
<td>
<button>
<a href="logined/delete?userid=${user.id}">删除</a>
</button>
<button>
<a href="logined/update?userid=${user.id}&username=${user.name}&userage=${user.age}&usergender=${user.gender}" >编辑</a>
</button>
</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
2、修改数据页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ request.getContextPath() + "/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>updateuser</title>
<style type="text/css">
#msg{
background: #FFDDCC;
width: 194px;
margin-left: 620px;
margin-top: 150px;
}
#table {
background: #FFDDCC;
width: 194px;
margin-left: 620px;
}
#button{
width: 170px;
margin-top:10px;
margin-left: 25px;
}
</style>
</head>
<body>
<form method="post" action="updatenew">
<div id="msg">
<table border="0" align="center">
<tr>
<td align="center"><font color="red" face="Verdana" size="+1">
编辑用户 ${sessionScope.msg} </font></td>
<c:remove var="msg" scope="session" />
</tr>
</table>
</div>
<div id="table">
<table border="1">
<tr>
<td>编号</td>
<td class="t1"><input type="text" size="20" maxlength="20"
value="${sessionScope.id}" name="id" /></td>
</tr>
<tr>
<td>姓名</td>
<td class="t2"><input type="text" size="20" maxlength="20"
value="${sessionScope.name}" name="name" /></td>
</tr>
<tr>
<td>年龄</td>
<td class="t3"><input type="text" size="20" maxlength="20"
value="${sessionScope.age}" name="age" /></td>
</tr>
<tr>
<td>性别</td>
<td class="t4"><input type="text" size="3" maxlength="10"
value="${sessionScope.gender}" name="gender" /></td>
</tr>
</table>
<div id="button">
<input type="submit" value="提交">
<input type="reset" value="重置">
</div>
</div>
</form>
</body>
</html>
3、添加数据页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ request.getContextPath() + "/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>adduser</title>
<style type="text/css">
#msg{
background: #FFDDCC;
width: 194px;
margin-left: 620px;
margin-top: 150px;
}
#table {
background: #FFDDCC;
width: 194px;
margin-left: 620px;
}
#button{
width: 170px;
margin-top:10px;
margin-left: 21px;
}
</style>
</head>
<body>
<form method="post" action="adduser">
<div id="msg">
<table border="0" align="center">
<tr>
<td align="center"><font color="red" face="Verdana" size="+1">
添加用户 ${sessionScope.msg} </font></td>
<c:remove var="msg" scope="session" />
</tr>
</table>
</div>
<div id="table">
<table border="1">
<tr>
<td>编号</td>
<td class="t1"><input type="text" size="20" maxlength="20"
name="id" /></td>
</tr>
<tr>
<td>姓名</td>
<td class="t2"><input type="text" size="20" maxlength="20"
name="name" /></td>
</tr>
<tr>
<td>年龄</td>
<td class="t3"><input type="text" size="20" maxlength="20"
name="age" /></td>
</tr>
<tr>
<td>性别</td>
<td class="t4"><input type="text" size="3" maxlength="10"
name="gender" /></td>
</tr>
</table>
<div id="button">
<input type="submit" value="提交">
<input type="reset" value="重置">
<button>
<a href="showusers.jsp">返回</a>
</button>
</div>
</div>
</form>
</body>
</html>
4、管理员登录页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String basePath = request.getScheme() + "://" + request.getServerName() + ":" +
request.getServerPort() + request.getContextPath() + "/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath %>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>login</title>
<style type="text/css">
#msg {
background: #FFDDCC;
width: 250px;
margin-left: 620px;
margin-top: 150px;
}
#table {
background: #FFDDCC;
width: 250px;
margin-left: 620px;
}
#button{
width: 240px;
margin-left: 70px
}
</style>
</head>
<body>
<body>
<form action="login">
<div id="msg">
<table border="0" align="center">
<tr>
<td align="center"><font color="red" face="Verdana" size="+1">
用户登录 ${sessionScope.msg} </font></td>
<c:remove var="msg" scope="session" />
</tr>
</table>
</div>
<div id="table">
<table border="1" width="100%">
<tr>
<td>用户名</td>
<td class="t1"><input type="text" size="20" maxlength="20"
name="username" /></td>
</tr>
<tr>
<td>密码</td>
<td class="t2"><input type="text" size="10" maxlength="20"
name="password" /></td>
</tr>
</table>
<div id="button">
<input type="submit" value="登录">
<input type="reset"value="重置">
</div>
</div>
</form>
</body>
</html>
注意: 将资源放在Deployed Resource->webapp文件下面,否则页面不会展示在浏览器上
四、web-service-dao
1、web层代码
1.添加数据
package com.briup.web;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletContext;
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.briup.bean.User;
import com.briup.service.AddUserService;
import com.briup.service.UserService;
@WebServlet("/adduser")
public class AddUser extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获得页面传过来的数据
String id = request.getParameter("id");
String name = request.getParameter("name");
String age = request.getParameter("age");
String gender = request.getParameter("gender");
//将数据存到User对象中
User user = new User();
user.setId(Long.parseLong(id));
user.setName(name);
user.setAge(Integer.parseInt(age));
user.setGender(gender);
HttpSession session = request.getSession();
try {
/*
*id为唯一标识
*所以id不能重复,在AddUserService类中提供了检查的方法
*/
UserService us = new UserService();
AddUserService aus = new AddUserService();
/*
*如果id重复就抛出异常
*否则就添加数据
*/
if(aus.findById(id)) {
aus.saveUser(user);
//数据更新 使展示页面的数据与数据库一致
ServletContext application = request.getServletContext();
List<User> users = us.findAll();
application.setAttribute("users", users);
}
//添加成功后就跳转到展示页面,并提示
response.sendRedirect("showusers.jsp");
session.setAttribute("msg", "操作成功");
} catch (Exception e) {
//发生异常后就跳转到本页面,并提示异常信息
response.sendRedirect("adduser.jsp");
session.setAttribute("msg", e.getMessage());
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
2、Filer
这里要考虑编码问题
1.编码问题过滤
package com.briup.web.Filer;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebFilter("/*")
public class EncodingFilter implements Filter {
public EncodingFilter() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
chain.doFilter(req, resp);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
2.登录实现
因为删除与修改需要登陆之后操作
package com.briup.web.Filer;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebFilter("/logined/*")
public class LoginFiler implements Filter {
public LoginFiler() {
// TODO Auto-generated constructor stub
}
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
HttpSession session = req.getSession();
/*
*登录标识isLogin
*如果页面没有此标识就跳转到登录界面
*/
Object obj = session.getAttribute("isLogin");
if(obj == null) {
session.setAttribute("msg", "请先登录");
resp.sendRedirect(req.getContextPath() + "/login.jsp");
} else {
chain.doFilter(req, resp);
}
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
3、登录
package com.briup.web;
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.briup.bean.Loginer;
import com.briup.service.LoginService;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String passwd = request.getParameter("password");
// System.out.println(username+":"+passwd);
HttpSession session = request.getSession();
try {
//LoginService类中提供了判定方法
LoginService login = new LoginService();
Loginer lo = login.login(username, passwd);
session.setAttribute("isLogin", lo);
response.sendRedirect("showusers.jsp");
} catch (Exception e) {
response.sendRedirect("login.jsp");
session.setAttribute("msg", e.getMessage());
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
4、删除数据
package com.briup.web;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletContext;
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.briup.bean.User;
import com.briup.service.UserService;
@WebServlet("/logined/delete")
public class DeleteUser extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*
*<a href="logined/delete?userid=${user.id}">删除</a>
*接收页面传过来的id值
*通过id删除
*/
String userId = request.getParameter("userid");
UserService us = new UserService();
us.delById(Long.parseLong(userId));
HttpSession session = request.getSession();
ServletContext application = request.getServletContext();
List<User> users = us.findAll();
application.setAttribute("users", users);
response.sendRedirect(request.getContextPath() + "/showusers.jsp");
session.setAttribute("msg", "操作成功");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
5、修改数据
1.数据传输
package com.briup.web;
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.briup.service.UserService;
/*
*这个传送数据的servlet
*/
@WebServlet("/logined/update")
public class UpdateUser extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*
*<a href="logined/update?userid=${user.id}&username=${user.name}&userage=${user.age}&usergender=${user.gender}" >编辑</a>
*获取showusers页面中的数据
*/
String userId = request.getParameter("userid");
String userName = request.getParameter("username");
String userAge= request.getParameter("userage");
String userGender = request.getParameter("usergender");
// System.out.println(userId+","+userName+","+userAge+","+userGender);
//使在修改页面的初始数据与展示页面的数据相同
HttpSession session = request.getSession();
session.setAttribute("id", userId);
session.setAttribute("name", userName);
session.setAttribute("age", userAge);
session.setAttribute("gender", userGender);
//跳转到修改数据页面
response.sendRedirect(request.getContextPath() + "/updateuser.jsp");
//将数据从数据库删除
UserService us = new UserService();
us.delById(Long.parseLong(userId));
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
2.数据修改
package com.briup.web;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletContext;
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.briup.bean.User;
import com.briup.service.AddUserService;
import com.briup.service.UserService;
/*
*这是数据修改servlet
*/
@WebServlet("/updatenew")
public class UpdateNewUser extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取页面填写的数据
String id = request.getParameter("id");
String name = request.getParameter("name");
String age = request.getParameter("age");
String gender = request.getParameter("gender");
//将数据存放到user对象中
User user = new User();
user.setId(Long.parseLong(id));
user.setName(name);
user.setAge(Integer.parseInt(age));
user.setGender(gender);
HttpSession session = request.getSession();
try {
//与adduser相同 这里不写了
UserService us = new UserService();
AddUserService aus = new AddUserService();
if(aus.findById(id)) {
aus.saveUser(user);
ServletContext application = request.getServletContext();
List<User> users = us.findAll();
application.setAttribute("users", users);
}
response.sendRedirect("showusers.jsp");
session.setAttribute("msg", "操作成功");
} catch (Exception e) {
response.sendRedirect("updateuser.jsp");
session.setAttribute("msg", e.getMessage());
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
3、service层代码
1、检查添加数据
package com.briup.service;
import com.briup.bean.User;
import com.briup.dao.SyDTest;
public class AddUserService {
//调用dao层的插入数据的方法
public void saveUser(User user) throws Exception {
if(user == null) {
throw new Exception("参数为空");
}
SyDTest.insertDate(user);
}
//检查id是否已在数据库中存在
public boolean findById(String id) throws Exception {
if (id == null) {
throw new Exception("参数为空");
}
//调用dao层的查询方法
for (User user : SyDTest.selectDate()) {
if (Long.parseLong(id) == user.getId()) {
throw new Exception("ID已存在");
}
}
return true;
}
}
2、数据查询与删除
package com.briup.service;
import java.util.List;
import com.briup.bean.User;
import com.briup.dao.SyDTest;
public class UserService {
//查询
public List<User> findAll(){
return SyDTest.selectDate();
}
//根据ID删除
public void delById(long id) {
SyDTest.delDate(id);
}
}
3、管理员登录处理
package com.briup.service;
import org.apache.commons.lang3.StringUtils;
import com.briup.bean.Loginer;
public class LoginService {
public Loginer login(String name,String password) throws Exception {
if(StringUtils.isBlank(name) || StringUtils.isBlank(password)) {
throw new Exception("参数为空");
}
//查询是否有此用户名
Loginer loginer = new Loginer(name);
if(loginer == null) {
throw new Exception("用户名或密码错误");
}
//查询密码是否与用户名对应
if(password.equals(loginer.getPassword())) {
return loginer;
}
throw new Exception("用户名或密码错误");
}
}
4、Dao层代码(数据库)
package com.briup.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.briup.bean.User;
import com.briup.util.OracleConnection;
public class SyDTest {
public static void insertDate(User user) {
try {
Connection connection = OracleConnection.getConnection();
String sql = "insert into t_user values(?,?,?,?)";
PreparedStatement pre = connection.prepareStatement(sql);
pre.setLong(1, user.getId());
pre.setString(2, user.getName());
pre.setInt(3, user.getAge());
pre.setString(4, user.getGender());
pre.executeUpdate();
connection.commit();
pre.close();
connection.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static List<User> selectDate() {
try {
Connection connection = OracleConnection.getConnection();
List<User> list = new ArrayList<>();
String sql = "select id,name,age,gender "
+ "from t_user";
PreparedStatement pre = connection.prepareStatement(sql);
ResultSet result = pre.executeQuery();
while(result.next()) {
User user = new User();
user.setId(result.getLong("id"));
user.setName(result.getString("name"));
user.setAge(result.getInt("age"));
user.setGender(result.getString("gender"));
list.add(user);
}
return list;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void delDate(long id) {
try {
Connection connection = OracleConnection.getConnection();
String sql = "delete from t_user "
+ "where id=?";
PreparedStatement pre = connection.prepareStatement(sql);
pre.setLong(1, id);
pre.executeUpdate();
connection.commit();
pre.close();
connection.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void upDate(int id,String name) {
try {
Connection connection = OracleConnection.getConnection();
String sql = "update t_user set name='"+name+"' where id=?";
PreparedStatement pre = connection.prepareStatement(sql);
pre.setLong(1, id);
pre.executeUpdate();
connection.commit();
pre.close();
connection.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
5、web层补充
因为考虑到直接在数据库中添加数据,数据有可能展示不到页面上,所以写一个监听
package com.briup.web.listener;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import com.briup.service.UserService;
@WebListener
public class ShowUserListener implements ServletContextListener {
/**
* Default constructor.
*/
public ShowUserListener() {
// TODO Auto-generated constructor stub
}
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
}
/**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent sce) {
//每次启动服务器(tomcat)就会去数据库拿数据
UserService users = new UserService();
ServletContext application = sce.getServletContext();
application.setAttribute("users", users.findAll());
}
}
五、运行结果
http://127.0.0.1:8989/user-web/showusers.jsp
1、showusers
2、adduser
3、updateuser
1.登录
未登录所以跳转到登录界面
2.修改
修改成功