struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="ro" namespace="/" extends="struts-default">
<action name="register" class="com.ro.action.test" method="register">
</action>
<action name="select" class="com.ro.action.test" method="select">
<result name="show">/show.jsp</result>
</action>
<action name="browse" class="com.ro.action.test" method="browse">
<result name="brow">browse.jsp</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping></web-app>
Controller(控制器)处理输入(写入数据库记录)
action.test.java
package com.ro.action;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.ro.bean.user;
import com.ro.dao.impl.daoimpl;
public class test {
private user user;
public user getUser() {
return user;
}
public void setUser(user user) {
this.user = user;
}
public String register() throws IOException{
Date date=new Date();
java.sql.Date data1=new java.sql.Date(date.getTime());
user.setTime(data1);
daoimpl dao=new daoimpl();
boolean result=dao.register(user);
HttpServletResponse respone= ServletActionContext.getResponse();
respone.getWriter().print(result);
return null;
}
public String select(){
daoimpl dao=new daoimpl();
List<user> list= dao.select(user.getName());
HttpServletRequest request= ServletActionContext.getRequest();
request.setAttribute("list", list);
return "show";
}
public String browse(){
HttpServletRequest request=ServletActionContext.getRequest();
String id=request.getParameter("id");
int userId = Integer.parseInt(id); //转换
daoimpl dao=new daoimpl();
user user= dao.queryid(userId);
request.setAttribute("hh", user);
return "brow";
}
}
bean user.java实体类
package com.ro.bean;
import java.sql.Date;
public class user {
private int id;
private String name;
private String sex;
private String age;
private Date time;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
Model(模型)表示应用程序核心(比如数据库记录列表)。
dao.util.dbhelper.java
package com.ro.dao.util;
import java.sql.Connection;
import java.sql.DriverManager;
public class dbhelper {
public static Connection getConnection() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String name="root";
String password="root";
String url="jdbc:mysql://localhost:3306/roco?characterEncoding=utf-8";
Connection conn=DriverManager.getConnection(url, name, password);
return conn;
}
}
dao.dao.java//接口类
package com.ro.dao;
import java.util.List;
import com.ro.bean.user;
public interface dao {
public boolean register(user user);//添加
public List<user> select(String name);//查询
public user queryid(int id);//根据id查询
}
dao.daoimpl.java //接口实现类
package com.ro.dao.impl;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.ro.bean.user;
import com.ro.dao.dao;
import com.ro.dao.util.dbhelper;
public class daoimpl implements dao{
@Override
public boolean register(user user) {
Connection conn;
int i=0;
try {
conn=dbhelper.getConnection();
String sql="insert into name(name,sex,age,time) values(?,?,?,?)";
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setString(1, user.getName());
pstm.setString(2,user.getSex());
pstm.setString(3, user.getAge());
pstm.setDate(4,user.getTime());
i=pstm.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return i>0?true:false;
}
@Override
public List<user> select(String name) {
List<user> list=new ArrayList<user>();
Connection conn;
try {
conn=dbhelper.getConnection();
String sql="select * from name where name like ? order by time desc";
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setString(1, "%"+name+"%");
ResultSet rs=pstm.executeQuery();
while(rs.next()){
user user=new user();
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setSex(rs.getString(3));
user.setAge(rs.getString(4));
user.setTime(rs.getDate(5));
list.add(user);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
@Override
public user queryid(int id) {
List<user> list=new ArrayList<user>();
user user=new user();
Connection conn;
try {
conn=dbhelper.getConnection();
String sql="select * from name where id=?";
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setInt(1, id);
ResultSet rs=pstm.executeQuery();
while(rs.next()){
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setSex(rs.getString(3));
user.setAge(rs.getString(4));
user.setTime(rs.getDate(5));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return user;
}
}
View(视图)显示数据(数据库记录)。
index.jsp //注册-查询
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="script/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#register").click(function(){
var name=$("#name").val();
var sex=$("#sex").val();
var age=$("#age").val();
if ("" == name){
alert("请输入用户名!");
return false;
}else if("" == sex){
alert("请输入性别!");
return false;
}
else if ("" == age){
alert("请输入年龄!");
return false;
}
$.ajax({
type:"post",
data:{"user.name":name,"user.sex":sex,"user.age":age},
url:"register",
success:function(da){
if(da=="true"){
alert("注册成功");
}else{
alert("未知错误");
}
}
});
});
});
</script>
</head>
<body>
用户名:<input type="text" id="name"><br>
性别:<input type="text" id="sex"><br>
年龄:<input type="text" id="age"><br>
<input type="button" value="注册" id="register">
<br>
<br>
<hr>
<form action="select" method="post">
关键字:<input type="text" name="user.name"><br>
<input type="submit" value="搜索" > <input type="reset" value="重置">
</form>
</body>
</html>
show.jsp //数据排列
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'show.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<div align="center"><form action="select" method="post">
关键字:<input type="text" value="${user.name}" name="user.name"><br>
<br/>
<input type="submit" value="搜索" >
<input type="reset" value="重置">
</form></div>
<h3 align="center">"${user.name}"搜索结果</h3>
<table align="center" >
<c:forEach var="li" items="${list}">
<tr>
<td ><a href="browse?id=${li.id}">${li.name}</a></td>
<td >${li.time}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
browse.jsp //可自行添加数据修改功能
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'browse.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1 align="center">${hh.name}</h1>
<p align="center">年龄:${hh.age}</p>
<p align="center">性别:${hh.sex}</p>
<p align="center">注册时间:${hh.time}</p>
</body>
</html>
mysql表
CREATE TABLE `name` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`sex` varchar(255) NOT NULL,
`age` varchar(255) NOT NULL,
`time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
INSERT INTO `name` VALUES ('1', '1231', '男', '8', '2018-05-03 16:16:24');
INSERT INTO `name` VALUES ('2', '22', '男', '9', '2018-04-30 01:03:05');
INSERT INTO `name` VALUES ('3', '222', '男', '6', '2018-05-02 03:00:56');
INSERT INTO `name` VALUES ('4', '2222', '男', '6', '2018-05-05 00:00:00');
INSERT INTO `name` VALUES ('5', '231233', '男', '6', '2018-05-04 00:00:00');
INSERT INTO `name` VALUES ('6', '58', '男', '6', '2018-05-04 00:00:00');
INSERT INTO `name` VALUES ('7', '5865353', '男', '6', '2018-04-02 18:58:00');
INSERT INTO `name` VALUES ('8', '586535355', '男', '6', '2018-04-09 21:00:00');
INSERT INTO `name` VALUES ('9', '632', '男', '6', '2018-03-06 23:56:01');
INSERT INTO `name` VALUES ('10', '88', '男', '9', '2018-04-11 20:00:00');
INSERT INTO `name` VALUES ('11', '789', '男', '6', '2018-05-04 00:00:00');
INSERT INTO `name` VALUES ('12', '22', '男', '79', '2018-05-05 00:00:00');