<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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_2_5.xsd">
<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>
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
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 'list.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">
-->
<link rel="stylesheet" href="css/index_work.css" type="text/css"></link>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript">
function gopage(cpage){
location = "u_list?cpage="+cpage;
}
function mohu(){
var mohu = $("[name='mohu']").val();
location ="u_list?mohu="+mohu;
}
</script>
</head>
<body>
<table>
<tr>
<th colspan="21">
<input type="text" name="mohu">
<input type="button" value="查找" onclick="mohu()">
</th>
</tr>
<tr>
<th>id</th>
<th>name</th>
<th>sex</th>
<th>datea</th>
<th>content</th>
<th>address</th>
<th>u_id</th>
<th>c_name</th>
<th>grade</th>
<th></th>
</tr>
<c:forEach var="u" items="${UserAnd}">
<tr>
<th>${u.id}</th>
<th>${u.name}</th>
<th>${u.sex}</th>
<th>${u.datea}</th>
<th>${u.content}</th>
<th>${u.address}</th>
<th>${u.u_id}</th>
<th>${u.c_name}</th>
<th>${u.grade}</th>
<th><input type="button" value="修改" onclick="location='u_show?user.id=${u.id}'"></th>
</tr>
</c:forEach>
<tr>
<th colspan="21">
<button onclick="gopage(1)">首页</button>
<button onclick="gopage(${pu.prevPage})">上页</button>
<button onclick="gopage(${pu.nextPage})">下页</button>
<button onclick="gopage(${pu.totalPage})">末页</button>
共${pu.totalPage}页${pu.count}条
</th>
</tr>
</table>
</body>
</html>
<%@ 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 'update.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 type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript">
function sub(){
$.post(
"u_update",
$("form").serialize(),
function (msg){
if(msg>0){
alert("修改成功");
location ="u_list";
}else{
alert("修改失败");
}
},"text"
);
}
</script>
</head>
<body>
<form>
id:<input name="user.id" value="${user.id}"><br>
name:<input name="user.name" value="${user.name}"><br>
sex:<input name="user.sex" value="${user.sex}"><br>
datea:<input name="user.datea" value="${user.datea}"><br>
content:<input name="user.content" value="${user.content}"><br>
address:<input name="user.address" value="${user.address}"><br>
u_id:<select name="user.sid" value="${user.sid}">
<option value="1">1001</option>
<option value="2">1002</option>
<option value="3">1003</option>
<option value="4">1004</option>
</select>
</form>
<input type="button" value="提交" onclick="sub()">
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="ssh" extends="struts-default">
<action name="u_*" class="com.action.Action" method="{1}">
<result name="list">list.jsp</result>
<result name="update">update.jsp</result>
</action>
</package>
</struts>
package com.action;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.struts2.ServletActionContext;
import com.alibaba.fastjson.JSON;
import com.dto.User;
import com.opensymphony.xwork2.ActionSupport;
import com.service.UserService;
import com.util.PageUtils;
public class Action extends ActionSupport{
//创建service层
private UserService service = new UserService();
private List UserAnd;
private PageUtils pu;
private String mohu;
private Integer cpage;
private User user;
public String list() throws Exception {
// TODO Auto-generated method stub
if(cpage==null){
cpage = 1;
}
Integer pageSize = 2;
Integer count = service.count(mohu);
pu = new PageUtils(cpage, pageSize, count);
UserAnd = service.list(pu,mohu);
return "list";
}
public String show() throws IOException{
user = service.show(user);
String jsonString = com.alibaba.fastjson.JSONArray.toJSONString(user);
System.out.println("jsonString");
System.out.println(jsonString);
System.out.println("user");
System.out.println(user);
return "update";
}
public void update() throws IOException{
int i = service.update(user);
HttpServletResponse response = ServletActionContext.getResponse();
response.getWriter().print(i);
}
public List getUserAnd() {
return UserAnd;
}
public void setUserAnd(List userAnd) {
UserAnd = userAnd;
}
public PageUtils getPu() {
return pu;
}
public void setPu(PageUtils pu) {
this.pu = pu;
}
public String getMohu() {
return mohu;
}
public void setMohu(String mohu) {
this.mohu = mohu;
}
public Integer getCpage() {
return cpage;
}
public void setCpage(Integer cpage) {
this.cpage = cpage;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
package com.service;
import java.util.List;
import com.dao.UserDao;
import com.dto.User;
import com.util.PageUtils;
public class UserService {
//创建Dao层
private UserDao dao = new UserDao();
public List list(PageUtils pu, String mohu) {
// TODO Auto-generated method stub
return dao.list(pu,mohu);
}
public Integer count(String mohu) {
// TODO Auto-generated method stub
return dao.count(mohu);
}
public User show(User user) {
// TODO Auto-generated method stub
return dao.show(user);
}
public int update(User user) {
// TODO Auto-generated method stub
return dao.update(user);
}
}
package com.dao;
import java.util.List;
import com.dto.User;
import com.dto.UserAnd;
import com.util.JdbcUtils;
import com.util.PageUtils;
public class UserDao {
public List list(PageUtils pu, String mohu) {
// TODO Auto-generated method stub
String sql = " select a.*,b.u_id,b.c_name,b.grade from t_user a left join t_score b on a.id = b.sid ";
if(mohu!=null){
sql += " where name like '%"+mohu+"%' ";
}
sql += " limit "+pu.getStartIndex()+","+pu.getPageSize();
List list = JdbcUtils.getList(UserAnd.class, sql);
return list;
}
public Integer count(String mohu) {
// TODO Auto-generated method stub
String sql = " select count(*) from t_user ";
if(mohu!=null){
sql += " where name like '%"+mohu+"%' ";
}
int count = JdbcUtils.getCount(sql);
return count;
}
public User show(User user) {
// TODO Auto-generated method stub
String sql = " select a.*,b.sid from t_user a left join t_score b on a.id = b.sid where a.id="+user.getId();
System.out.println(sql);
User object = (User) JdbcUtils.getOneObject(User.class, sql);
return object;
}
public int update(User user) {
// TODO Auto-generated method stub
String sql = " update t_user set name='"+user.getName()+"',sex='"+user.getSex()+"',datea='"+user.getDatea()+"',content='"+user.getContent()+"',address='"+user.getAddress()+"' where id="+user.getId();
System.out.println(sql);
int i = JdbcUtils.executeSQL(sql);
System.out.println(i);
return i;
}
}
package com.dto;
public class UserAnd {
private Integer id;
private String name;
private String sex;
private String datea;
private String content;
private String address;
private Integer sid;
private Integer u_id;
private String c_name;
private Integer grade;
public UserAnd() {
super();
// TODO Auto-generated constructor stub
}
public UserAnd(Integer id, String name, String sex, String datea,
String content, String address, Integer sid, Integer u_id,
String c_name, Integer grade) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.datea = datea;
this.content = content;
this.address = address;
this.sid = sid;
this.u_id = u_id;
this.c_name = c_name;
this.grade = grade;
}
@Override
public String toString() {
return "UserAnd [id=" + id + ", name=" + name + ", sex=" + sex
+ ", datea=" + datea + ", content=" + content + ", address="
+ address + ", sid=" + sid + ", u_id=" + u_id + ", c_name="
+ c_name + ", grade=" + grade + "]";
}
public Integer getId() {
return id;
}
public void setId(Integer 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 getDatea() {
return datea;
}
public void setDatea(String datea) {
this.datea = datea;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public Integer getU_id() {
return u_id;
}
public void setU_id(Integer u_id) {
this.u_id = u_id;
}
public String getC_name() {
return c_name;
}
public void setC_name(String c_name) {
this.c_name = c_name;
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
}
package com.dto;
public class User {
private Integer id;
private String name;
private String sex;
private String datea;
private String content;
private String address;
private Integer sid;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(Integer id, String name, String sex, String datea,
String content, String address, Integer sid) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.datea = datea;
this.content = content;
this.address = address;
this.sid = sid;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", sex=" + sex
+ ", datea=" + datea + ", content=" + content + ", address="
+ address + ", sid=" + sid + "]";
}
public Integer getId() {
return id;
}
public void setId(Integer 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 getDatea() {
return datea;
}
public void setDatea(String datea) {
this.datea = datea;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
}
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.beanutils.BeanUtils;
public class JdbcUtils {
//鏌ヨ鏁版嵁闆嗗悎
public static Object getOneObject(Class c, String sql){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Object obj = null;
try {
conn = getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();//寰楀埌鏁版嵁婧�
if(rs.next()){
obj = c.newInstance();
for(int i = 1;i<=metaData.getColumnCount();i++){
BeanUtils.copyProperty(obj, metaData.getColumnName(i), rs.getObject(i));
}
}
} catch (Exception e) {
e.printStackTrace();
} finally{
closeResource(rs, ps, conn);
}
return obj;
}
//鏌ヨ鏁版嵁闆嗗悎
public static List getList(Class c, String sql){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
List list = new ArrayList();
try {
conn = getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();//寰楀埌鏁版嵁婧�
while(rs.next()){
Object obj = c.newInstance();
for(int i = 1;i<=metaData.getColumnCount();i++){
BeanUtils.copyProperty(obj, metaData.getColumnName(i), rs.getObject(i));
}
list.add(obj);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
closeResource(rs, ps, conn);
}
return list;
}
//鏌ヨ鏁版嵁鎬绘潯鏁�
public static int getCount(String sql){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
int count = 0;
try {
conn = getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
closeResource(rs, ps, conn);
}
return count;
}
//鎵цsql璇彞
public static int executeSQL(String sql){
Connection conn = null;
PreparedStatement ps = null;
int i = 0;
try {
conn = getConnection();
ps = conn.prepareStatement(sql);
i = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally{
closeResource(null, ps, conn);
}
return i;
}
static{
try {
System.out.println("加载驱动");
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//鑾峰彇杩炴帴
private static Connection getConnection(){
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:mysql:///ssh01", "root", "root");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
//鍏抽棴璧勬簮
private static void closeResource(ResultSet rs, PreparedStatement ps, Connection conn){
try {
if(rs != null){
rs.close();
}
if(ps != null){
ps.close();
}
if(conn != null){
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.util;
public class PageUtils {
private Integer cpage;//褰撳墠椤�
private Integer pageSize;//姣忛〉灞曠ず鏈�ぇ鏉℃暟
private Integer count;//鏁版嵁鎬绘潯鏁�
private Integer totalPage;//鎬婚〉鏁�
private Integer startIndex;//璧峰涓嬫爣
private Integer prevPage;//涓婁竴椤�
private Integer nextPage;//涓嬩竴椤�
//浣跨敤姝ゅ伐鍏风被锛岃皟鐢ㄨ繖涓瀯閫犲櫒
public PageUtils(Integer cpage, Integer pageSize, Integer count) {
this.cpage = cpage;
this.pageSize = pageSize;
this.count = count;
calPrevPage();
calStartIndex();
calTotalPage();
calNextPage();
}
private void calTotalPage(){//璁$畻鎬婚〉鏁�
this.totalPage = count/pageSize + (count%pageSize==0?0:1);
}
private void calStartIndex(){//璁$畻璧峰涓嬫爣
this.startIndex = (cpage-1)*pageSize;
}
private void calPrevPage(){//璁$畻涓婁竴椤�
this.prevPage = cpage==1?1:(cpage-1);
}
private void calNextPage(){//璁$畻涓嬩竴椤�
this.nextPage = cpage.equals(totalPage)?totalPage:(cpage+1);
}
public Integer getCpage() {
return cpage;
}
public void setCpage(Integer cpage) {
this.cpage = cpage;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public Integer getStartIndex() {
return startIndex;
}
public void setStartIndex(Integer startIndex) {
this.startIndex = startIndex;
}
public Integer getPrevPage() {
return prevPage;
}
public void setPrevPage(Integer prevPage) {
this.prevPage = prevPage;
}
public Integer getNextPage() {
return nextPage;
}
public void setNextPage(Integer nextPage) {
this.nextPage = nextPage;
}
}
Not everything that counts can be counted, and not everything that’s counted truly counts.
不是所有有价值的事物都可以被计算,也不是所有可计算的事物都值得去计算。
投稿人的话:这句话是爱因斯坦的名言,也被引用在了演讲《在你感觉到压力之前》里:按自己的节奏走,不代表你不积极不努力。每个人都有自己的生活节奏,希望你们能够创造自己有意义的人生,学着如何去影响别人的生活。这,才是真正的成功。投稿人Tommy同样贡献了这句话,他认为:人生有无限可能,别给自己设限,别让任何人打乱你的节奏,余生漫长,莫要慌张。