struts mysql 增删改查_Struts1 增删改查

文章说明

本篇文章介绍如何使用Struts1进行增删改查,仅是对自己学习的记录,并没有深入分析每个模块(不重复造轮子O(∩_∩)O~)。

Tomcat

开源的Web应用服务器,apache-tomcat-8.0.35-windows-x64.zip仅有10.3M。启动服务:bin-startup.bat。

5219a5beb4e6012bdb42c216c54fce9d.png

1.png-28.7kB

数据库

MySQL

建立数据库test,并在其中建立表users。

CREATE DATABASE test

USE test

CREATE TABLE users (

id int(10) NOT NULL AUTO_INCREMENT,

name varchar(10) NOT NULL,

sex varchar(2) NOT NULL,

phone varchar(11) DEFAULT NULL,

address varchar(50) DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;

查看表users

DESC users

edc49958f171e0e13aaf1a94b24ff855.png

2.png-17.1kB

数据库管理工具-Navicat

9c83f11b40ed1f909bd9a12db466e8cc.png

3.png-37.5kB

JDBC

9c353d2cdee40bee0491dd65715cdbbc.png

1.png-28.5kB

Struts 1

采用Java Servlet/JSP,实现了基于Java Web应用的MVC框架,是MVC的经典产品。

MVC

18f5cf8ea5a72cb8cecb74ba7d8d71da.png

5.png-24.9kB

模型(Model):DB

视图(View):JSP

控制器(Controller):ActionServlet

Struts框架

7b7e4107fc86e9415e0b8fe4ec978e9d.png

7.png-25.9kB

struts-config.xml:声明和映射Struts组件。

安装 Struts 1

将lib目录下,所有的jar包复制到工程目录WEB-INF的lib目录中。

54b3c0abeaa1646279a585fa80e9bf33.png

4.png-76.9kB

配置 Struts 1

在web.xml DD配置文件中,加入

action

org.apache.struts.action.ActionServlet

action

*.do

add.jsp

pageEncoding="UTF-8"%>

function validate(form) {

if (validatePhone(form)) {

form.submit();

}

}

function validatePhone(form) {

var regex = /^\d{7,11}$/;

if (!regex.test(form["phone"].value)) {

alert("输入的phone非法!");

return false;

}

return true;

}

增加用户界面
name:
sex:

phone:
address:

οnclick="validate(this.form);">

52fbf2cdca049edd882280ca40f72814.png

8.png-2kB

AddAction.java

package action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import model.DBHelperL;

public class AddAction extends Action {

@Override

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,

HttpServletResponse response) throws Exception {

String name = request.getParameter("name");

String sex = request.getParameter("sex");

String phone = request.getParameter("phone");

String address = request.getParameter("address");

String action = request.getParameter("action");

if ("submit".equals(action)) {

if (name == null || name.length() <= 0) {

} else {

// 数据库增加操作

DBHelperL db = new DBHelperL();

db.add(name, sex, phone, address);

db.close();

// 重定向,防止刷新时重复提交表单!

response.sendRedirect("show.do");

}

}

return mapping.getInputForward();

}

}

DB add

public void add(String name, String sex, String phone, String address) throws SQLException {

String sql = "INSERT INTO users (name, sex, phone, address) VALUES(?,?,?,?)";

if (pstm == null) {

pstm = conn.prepareStatement(sql);

}

pstm.setString(1, name);

pstm.setString(2, sex);

pstm.setString(3, phone);

pstm.setString(4, address);

pstm.execute();

}

struts-config.xml DD配置

在中,添加action。

show.jsp

DBHelperL db = new DBHelperL();

List> lists = db.queryAll();

db.close();

request.setAttribute("lists", lists);

%>

users表的所有数据
countidnamesexphoneaddressdeleteupdate
${status.count}${list.get(0)}${list.get(1)}${list.get(2)}${list.get(3)}${list.get(4)}删除修改

增加用户

630392717eed546e85f35606bdf78113.png

9.png-4.3kB

DB queryByID

public List queryByID(String ID) throws SQLException {

List list = new ArrayList<>();

String sql = "SELECT * FROM users WHERE id = ?";

pstm = conn.prepareStatement(sql);

pstm.setString(1, ID);

ResultSet rs = pstm.executeQuery();

while (rs.next()) {

// 将结果顺序存放到一个list中,作为结果返回

list.add(rs.getString(2));

list.add(rs.getString(3));

list.add(rs.getString(4));

list.add(rs.getString(5));

}

return list;

}

struts-config.xml DD配置

forward="/pages/show.jsp">

DeleteAction.java

package action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import model.DBHelperL;

public class DeleteAction extends Action {

@Override

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,

HttpServletResponse response) throws Exception {

String ID = request.getParameter("deleteID");

DBHelperL db = new DBHelperL();

db.deleteByID(ID);

db.close();

return mapping.getInputForward();

}

}

DB deleteByID

public boolean deleteByID(String ID) throws SQLException {

String sql = "DELETE FROM users WHERE id = ?";

pstm = conn.prepareStatement(sql);

pstm.setString(1, ID);

return pstm.execute();

}

name和sex不能修改,根据ID更新数据。

update.jsp

action="update.do?action=submit&updateID="

method="post">

name:

value= readonly="readonly">

sex:

value= readonly="readonly">

phone:

value=>

address:

value=>

UpdateAction.java

package action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import model.DBHelperL;

public class UpdateAction extends Action {

@Override

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,

HttpServletResponse response) throws Exception {

String ID = request.getParameter("updateID");

String action = request.getParameter("action");

DBHelperL db = new DBHelperL();

List list = db.queryByID(ID);

if (!list.isEmpty()) {

request.setAttribute("updateID", ID);

request.setAttribute("name", list.get(0));

request.setAttribute("sex", list.get(1));

request.setAttribute("phone_old", list.get(2));

request.setAttribute("address_old", list.get(3));

}

if ("submit".equals(action)) {

if (ID != null && ID.length() > 0) {

String phone_new = request.getParameter("phone_new");

String address_new = request.getParameter("address_new");

db.updateByID(ID, phone_new, address_new);

db.close();

response.sendRedirect("show.do");

}

}

db.close();

return mapping.getInputForward();

}

}

struts-config.xml

336fa001d13f17101874f2d7dc71e0cc.png

10.png-2.8kB

中文乱码

Filter

package filters;

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;

public class SetCharacterEncodingFilter implements Filter {

String encoding = null;

@Override

public void init(FilterConfig filterConfig) throws ServletException {

encoding = filterConfig.getInitParameter("encoding");

if (encoding == null || encoding.length() <= 0) {

encoding = "UTF-8";

}

}

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

request.setCharacterEncoding(encoding);

chain.doFilter(request, response);

}

@Override

public void destroy() {

}

}

web.xml DD中配置

Set Character Encoding

filters.SetCharacterEncodingFilter

encoding

UTF-8

Set Character Encoding

/*

其它问题

防止刷新-重复提交表单

response.sendRedirect("show.do");

表单验证-JavaScript

用button替代submit,在JavaScript中满足条件时,调用form.submit()。

JavaScript代码:

function validate(form) {

if (validatePhone(form)) {

form.submit();

}

}

function validatePhone(form) {

var regex = /^\d{7,11}$/;

if (!regex.test(form["phone"].value)) {

alert("输入的phone非法!");

return false;

}

return true;

}

首页跳转到.do

在默认的jsp文件中,转发到指定的URL。

DEMO 下载链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值