Struts2的CRUD(涵盖国际化、头像上传)

1.新建数据库:

create database Test

create table user1(
id int identity(1,1) not null,
img varchar(200) not null,
name varchar(20) not null,
pwd varchar(20) not null,
date varchar(20) not null
)

2.新建一个web project,导jar包,连接数据库:

DBUtils.java:


public class DBUtils {
public static Connection openDB(){
Connection con=null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Test","sa","123456");
System.out.println("成功..!!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public static void main(String[] args) {
new DBUtils().openDB();
}
}


3.javabean:

public class User {
private int id;
private String name;
private String pwd;
private String date;
private String img;
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 getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
}

4.Dao及Dao实现:

public interface UserDao {
public int insert_user(User user);
public User select_users(String name, String pwd);
public List<User> query_all();
public User query(int id);
public boolean update_user(User user);
public boolean delete(int id);
}


public class UserDaoImpl implements UserDao{
Connection con=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
//注册
public int insert_user(User user) {
int flag=0;
try {
con=new DBUtils().openDB();
String sql="insert into user1(name,pwd,img,date) values(?,?,?,?)";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getName());
pstmt.setString(2, user.getPwd());
pstmt.setString(3, user.getImg());
pstmt.setString(4, user.getDate());
flag=pstmt.executeUpdate();

} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, pstmt, con);
}
return flag;
}

//登录
public User select_users(String name, String pwd) {
User user=null;
try {
con=new DBUtils().openDB();
String sql="select * from user1 where name=? and pwd=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, pwd);
rs=pstmt.executeQuery();
while(rs.next()){
user=new User();
user.setName(rs.getString("name"));
user.setPwd(rs.getString("pwd"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, pstmt, con);
}
return user;
}
//全部显示
public List<User> query_all() {
List<User> list=new ArrayList<User>();
try {
con=new DBUtils().openDB();
String sql="select * from user1";
pstmt=con.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()){
User user=new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setPwd(rs.getString("pwd"));
user.setImg(rs.getString("img"));
user.setDate(rs.getString("date"));
list.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, pstmt, con);
}
return list;
}

public User query(int id) {
User user=new User();
try {
con=new DBUtils().openDB();
String sql="select * from user1 where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setInt(1, id);
rs=pstmt.executeQuery();
while(rs.next()){
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setDate(rs.getString("date"));
user.setPwd(rs.getString("pwd"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, pstmt, con);
}
return user;
}
//删除
public boolean delete(int id) {
boolean flag=false;
try {
con=new DBUtils().openDB();
String sql="delete from user1 where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setInt(1,id);
int i=pstmt.executeUpdate();
if(i>0){
flag=true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, pstmt, con);
}
return flag;
}
//修改
public boolean update_user(User user) {
boolean flag=false;
try {
con=new DBUtils().openDB();
String sql="update user1 set name=?,pwd=?,date=? where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getName());
pstmt.setString(2, user.getPwd());
pstmt.setString(3, user.getDate());
pstmt.setInt(4, user.getId());
int i=pstmt.executeUpdate();
if(i>0){
flag=true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(rs, pstmt, con);
}
return flag;
}
public void close( ResultSet rs, PreparedStatement pstmt,Connection conn) {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

5.登录注册以及登录成功jsp界面(采用国际化):

//登录

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    <title>登录界面</title>
  </head>
  <body>
  <center>
  <s:form action="login" method="post">
  <s:textfield key="user.name.label" name="user.name"></s:textfield>
  <s:password key="user.pwd.label" name="user.pwd"></s:password>
  <s:submit value="登       录" style="width=155px;heigh=25px;font-size: 18px"/>
  <s:actionerror/>
  </s:form>
  
  <s:form action="register1" method="post">
  <s:a href="register1">立即注册</s:a>
  </s:form>
  </center>
  </body>
</html>


//注册

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    <title>注册界面</title>
  </head>
  
  <body>
  <center>
  <s:form action="up" enctype="multipart/form-data"   method="post">
  <s:file key="user.upload.label" name="upload"></s:file>
  <s:textfield key="user.name.label" name="user.name"></s:textfield>
  <s:textfield key="user.pwd.label" name="user.pwd"></s:textfield>
  <s:textfield key="user.date.label" name="user.date" placeholder="2016-01-01"/>
  <s:submit value="%{getText('user.submit')}" style="width=225px;heigh=25px;font-size: 18px;"/>
  <s:actionerror/>
  </s:form>
  </center>
  </body>
</html>

//登录成功界面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.sc.entity.User"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    <title>My JSP 'success.jsp' starting page</title>
  </head>
  <body>
    <h4>用户管理系统</h4>
   <s:form action="register1" method="post">
  <s:a href="add">添加用户</s:a>
  </s:form>
    <% 
        ArrayList hs = (ArrayList)request.getAttribute("list");
      %>   
     <table border="1" cellpadding="0" cellspacing="0">
     <tr align="center">
      <td>编号</td>
      <td>头像</td>
      <td>用户名</td>
      <td>密码</td>
      <td>出生日期</td>
      <td>操作</td>
     </tr>
     <% for(int i=0;i<hs.size();i++)
        {%>
         <tr align="center">
            <td><%=((User)hs.get(i)).getId() %></td>
            <td><img src="<%=((User)hs.get(i)).getImg() %>" width="70px" height="70px"/></td>
<td><%=((User)hs.get(i)).getName() %></td>
            <td><%=((User)hs.get(i)).getPwd() %></td>
            <td><%=((User)hs.get(i)).getDate() %></td>
<td><a href="update?id=<%=((User)hs.get(i)).getId() %>">修改</a>/<a href="delete?id=<%=((User)hs.get(i)).getId() %>">删除</a></td>
         </tr>
      <%} %>
     </table>
  </body>
</html>


//添加用户

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    <title>添加用户</title>
  </head>
  <body>
  <center>
  <s:form action="insert" enctype="multipart/form-data"   method="post">
  <s:file key="user.upload.label" name="upload"></s:file>
  <s:textfield key="user.name.label" name="user.name"></s:textfield>
  <s:textfield key="user.pwd.label" name="user.pwd"></s:textfield>
  <s:textfield key="user.date.label" name="user.date" placeholder="2016-01-01"/>
  <s:submit value="添加" style="width=225px;heigh=25px;font-size: 18px;"/>
  <s:actionerror/>
  </s:form>
  </center>
  </body>
</html>


//修改用户

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    <title>修改信息</title>
  </head>
  <body>
  <s:form action="update1" method="post">
          <s:hidden value="%{#request.user1.id}" name="user.id"></s:hidden>
          <s:textfield label="用户名" name="user.name" value="%{#request.user1.name}"/>
          <s:textfield label="密码" name="user.pwd" value="%{#request.user1.pwd}"/>
          <s:textfield label="出生日期" name="user.date" value="%{#request.user1.date}"/>
          <s:submit value="修改"></s:submit>
      </s:form>
  </body>
</html>

6.Action:

public class UserAction extends ActionSupport implements ServletRequestAware{
User user;
private File upload;
private String uploadFileName;
private String uploadContentType;
private HttpServletRequest request;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}

public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public void setServletRequest(HttpServletRequest arg0) {
this.request=arg0;
}
public String entity() throws Exception {
return "index";
}
public String register1() throws Exception {
return "register";
}
public String add() throws Exception {
return "add";
}
public String register() throws Exception {
if(upload!=null&&uploadFileName!=null){
FileInputStream fis = new FileInputStream(upload);
String img = request.getSession().getServletContext().getRealPath("/") + "upload" + File.separator + uploadFileName;
user.setImg(new File("upload" + File.separator + uploadFileName).getPath());
FileOutputStream fos = new FileOutputStream(img);
byte[] buffer = new byte[1024];
int len = 0;
while((len=fis.read(buffer))!=-1){
fos.write(buffer, 0, len);
}
fos.close();
fis.close();
}
if(user.getName()==null||user.getPwd()==null||user.getDate()==null||user.getName().equals("")||user.getPwd().equals("")||user.getDate().equals("")){
super.addActionError("用户信息不完整,请重新输入");
return "register";
}else{
int b= new UserDaoImpl().insert_user(user);
if(b>0){
super.addActionError("注册成功!!!");
return SUCCESS;
}else{
super.addActionError("注册失败,请重新注册");
return "register";
}
}
}
public String login() throws Exception {
String name=user.getName();
String pwd=user.getPwd();

if(user.getName()==null||user.getPwd()==null||user.getName().equals("")||user.getPwd().equals("")){
super.addActionError("用户名或密码不能为空!!!");
return "login";
}else{
User b= new UserDaoImpl().select_users(name, pwd);
if(b != null){
super.addActionError("登录成功!!!");
List list=new UserDaoImpl().query_all();
request.setAttribute("list", list);
return "login_success";
}else{
super.addActionError("登录失败,用户名或密码错误");
return "login";
}
}
}
//添加
public String insert() throws Exception {
if(upload!=null&&uploadFileName!=null){
FileInputStream fis = new FileInputStream(upload);
String img = request.getSession().getServletContext().getRealPath("/") + "upload/" + uploadFileName;
user.setImg(new File("upload" + File.separator + uploadFileName).getPath());
FileOutputStream fos = new FileOutputStream(img);
byte[] buffer = new byte[1024];
int len = 0;
while((len=fis.read(buffer))!=-1){
fos.write(buffer, 0, len);
}
fos.close();
fis.close();
}
if(user.getName()==null||user.getPwd()==null||user.getDate()==null||user.getName().equals("")||user.getPwd().equals("")||user.getDate().equals("")){
super.addActionError("用户信息不完整,请重新输入");
return "insert";
}else{
int b= new UserDaoImpl().insert_user(user);
if(b>0){
List list=new UserDaoImpl().query_all();
request.setAttribute("list", list);
return SUCCESS;
}else{
super.addActionError("添加失败,请重新添加");
return "insert";
}
}
}
//按id查询
public String update() throws Exception {
User user1=new UserDaoImpl().query(Integer.parseInt(String.valueOf( request.getParameter("id"))));
request.setAttribute("user1", user1);
return SUCCESS;
}
//修改
public String update1() throws Exception {
boolean d=new UserDaoImpl().update_user(user);
List list=new UserDaoImpl().query_all();
request.setAttribute("list", list);
if(d==true){
System.out.println("修改成功!");
}
return SUCCESS;
}
public String query_all() throws Exception {
List<User> list=new UserDaoImpl().query_all();
request.setAttribute("list", list);
return "input";
}
//删除
public String delete() throws Exception {
new UserDaoImpl().delete(Integer.parseInt(String.valueOf( request.getParameter("id"))));
List<User> list=new UserDaoImpl().query_all();
request.setAttribute("list", list);
return "input";
}
}


国际化(注意和Action放在一个包下):



7.配置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>
<constant name="struts.devMode" value="true"></constant>
<package name="struts" extends="struts-default" namespace="/">
<action name="entity" class="com.sc.action.UserAction" method="entity" >
        <result name="index">/index.jsp</result>
    </action>
<action name="register1" class="com.sc.action.UserAction" method="register1" >
        <result name="register">/register.jsp</result>
    </action>
<action name="add" class="com.sc.action.UserAction" method="add" >
        <result name="add">/add.jsp</result>
    </action>
    
<action name="up" class="com.sc.action.UserAction" method="register">
<result name="register">/register.jsp</result>
<result name="success">/index.jsp</result>
</action>

<action name="insert" class="com.sc.action.UserAction" method="insert">
<interceptor-ref name="defaultStack"/>
<result name="insert">/add.jsp</result>
<result name="success">/success.jsp</result>
</action>

<action name="login" class="com.sc.action.UserAction" method="login">
<result name="login">/index.jsp</result>
<result name="login_success">/success.jsp</result>
</action>

<action name="update" class="com.sc.action.UserAction" method="update">
 <result>/update.jsp</result>
</action>

<action name="update1" class="com.sc.action.UserAction" method="update1">
        <result>/success.jsp</result>
</action>

<action name="delete" class="com.sc.action.UserAction" method="delete">
        <result name="input">/success.jsp</result>
</action>
</package>
</struts>  

8.运行结果:

(注意地址栏的输入很重要,不然国际化不会显示)

点击立即注册(注意上传的头像命名最好不含中文,否则有可能无法显示):

点击注册:


输入刚才注册的密码进行登录(就会看到刚才注册的新用户):


添加用户就是新注册一个用户就不再多做演示了。

点击修改:


输入要修改的信息点击修改:


会看到刚才修改后的信息:


点击删除这一行就会被删除:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值