博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用标准Struts2+mvc写的用户管理
阅读量:4502 次
发布时间:2019-06-08

本文共 7232 字,大约阅读时间需要 24 分钟。

这星期的实验,最终调好了。

一句话,麻雀虽小,五脏俱全。相信刚学struts2的同学能够通过该实验能够更好地理解struts的结构和mvc

登录的之前写过,这里直接进入用户管理

用struts2都要在src目录下建个struts.xml文件。文件名称不能写错。这里直接贴上整个project定义到的action,了解下语法就能够了,以后详细用到再依据项目去改

/index.jsp
queryAll
queryAll
queryAll
edit.jsp
WebRoot/WEB-INF下有个web.xml,得定义struts过滤器,直接看代码清楚些。这部分固定不变的。以后用到能够直接copy过去

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.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

用户模型User.java,模型都是一些属性和getter、setter方法,不想每次手动写全部的getter、setter方法能够右击选中Generate Getter and Setters...设置生成对应的方法

public class User {	public int id;	public String username;	public String password;	public int getId() {		return id;	}	public void setId(int 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;	}	}
接下来一个DataBaseConn.java,用于获取数据库连接

import java.sql.*;public class DataBaseConn {	static Connection conn;	public static Connection getConnection(){		try {			Class.forName("com.mysql.jdbc.Driver");			conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "686175");		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		return conn;	}	public void close(){		if(conn!=null){			try {				conn.close();			} catch (SQLException e) {				// TODO Auto-generated catch block				e.printStackTrace();			}		}	}}
QueryUpdate.java,业务逻辑层

import java.util.ArrayList;import java.sql.*;public class QueryUpdate {	Connection conn;	Statement stmt;	ResultSet rs;	String sql=null;		public QueryUpdate(){		conn=DataBaseConn.getConnection();		try {			stmt=conn.createStatement();		} catch (SQLException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}	public ArrayList
queryAll(){ ArrayList
users=new ArrayList
(); try { sql="select * from user"; rs=stmt.executeQuery(sql); while(rs.next()){ User user=new User(); user.setId(rs.getInt(1)); user.setUsername(rs.getString(2)); user.setPassword(rs.getString(3)); users.add(user); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return users; } public User queryUserById(int id){ User user=new User(); sql="select * from user where id='"+id+"'"; try { rs=stmt.executeQuery(sql); if(rs.next()){ user.setId(rs.getInt(1)); user.setUsername(rs.getString(2)); user.setPassword(rs.getString(3)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return user; } public void delete(int id){ sql="delete from user where id='"+id+"'"; try { stmt.executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void insert(String username,String password){ try { int count=1; sql="select * from user"; rs=stmt.executeQuery(sql); if(rs.next()){ rs.last(); count=rs.getInt(1)+1; } sql="insert into user values('"+count+"','"+username+"','"+password+"')"; stmt.executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void edit(int id,String username,String password){ try { sql="update user set username='"+username+"', password='"+password+"' where id='"+id+"'"; stmt.executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
以下是一个Action类UserAction.java。struts都是用action处理的

import java.util.ArrayList;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport{		int id;	String username;	String password;	public int getId() {		return id;	}	public void setId(int 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;	}	public String queryAll(){		QueryUpdate qu=new QueryUpdate();		ArrayList
users=new ArrayList
(); users=qu.queryAll(); HttpServletRequest request=ServletActionContext.getRequest(); request.setAttribute("all", users); return "success"; } public String queryUserById(){ QueryUpdate qu=new QueryUpdate(); User user=new User(); user=qu.queryUserById(this.getId()); HttpServletRequest request=ServletActionContext.getRequest(); request.setAttribute("user", user); return "success"; } public String delete(){ QueryUpdate qu=new QueryUpdate(); qu.delete(this.getId()); return "success"; } public String insert(){ QueryUpdate qu=new QueryUpdate(); qu.insert(this.getUsername(), this.getPassword()); return "success"; } public String edit(){ QueryUpdate qu=new QueryUpdate(); qu.edit(this.getId(),this.getUsername(),this.getPassword()); return "success"; }}
表现层

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags" %>      My JSP 'index.jsp' starting page          
编号 账号 密码 编辑 删除
改动 删除
加入新用户
编辑更新信息edit.jsp。

神了,用struts标签写的不知道为什么编译只是去,后来听同学的改用普通的jsp就能够了

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page isELIgnored="false"%>        My JSP 'edit.jsp' starting page      
编号
用户名
密码

编号设为仅仅读也能够用disabled="true",区别就是用disabled界面是灰色的看不太清id值。用readonly尽管看起来和username、password差点儿相同。假设想删除id,程序会跳回index.jsp,da

加入新用户insert.java

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags" %>      My JSP 'insert.jsp' starting page          

在浏览器输入地址http://localhost:8080/struts2_mvc/queryAll.action便进入主页面

转载于:https://www.cnblogs.com/mengfanrong/p/5153897.html

你可能感兴趣的文章
周总结报告
查看>>
Selecting Courses POJ - 2239(我是沙雕吧 按时间点建边 || 匹配水题)
查看>>
Win+R指令(2)
查看>>
codeforces 578c - weekness and poorness - 三分
查看>>
数值微分方程
查看>>
动态规划--电路布线(circuit layout)
查看>>
<转>OD常用断点列表
查看>>
描边时消除锯齿SetSmoothingMode
查看>>
15回文相关问题
查看>>
将VS2013项目转成VS2010项目的方法
查看>>
[置顶] 怎么对待重复的代码
查看>>
多种方法实现H5网页图片动画效果;
查看>>
Ubuntu/CentOS下使用脚本自动安装 Docker
查看>>
源码解读Mybatis List列表In查询实现的注意事项
查看>>
POJ 2311 Cutting Game(二维SG+Multi-Nim)
查看>>
1978 Fibonacci数列 3
查看>>
1225 八数码难题
查看>>
C#控件的闪烁问题解决方法总结
查看>>
js 冒泡事件与解决冒泡事件
查看>>
2018-2019赛季多校联合新生训练赛第七场(2018/12/16)补题题解
查看>>