实训--day10
来源:互联网 发布:南京信讯通软件 编辑:程序博客网 时间:2024/06/15 03:04
今天完成的是昨天的作业。
其实就是通过struts实现前后端的简单交互,比如通过表单提交查看数据库中的内容。
一般这类的交互,代码主要分为三层,action,service,dao。
action:接收前端数据。
service:进行逻辑处理
dao:于数据库进行交互。
作业内容很简单,就是前端输入用户信息,提交到后端,我是先进行数据的插入,然后跳到一个页面,对数据库中的全部内容进行显示。
action层:
package com.swpu.homework.action;import java.util.List;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.swpu.homework.dao.User;import com.swpu.homework.service.DealData;public class UserAction extends ActionSupport {private static final long serialVersionUID = 1L;public User user=new User();DealData deal=new DealData();public User getUser() {return user;}public void setUser(User user) {this.user = user;}@Overridepublic String execute() throws Exception{String username=user.getUsername();int id=user.getId();String sql="insert into users VALUES("+id+",'"+username+"')";String sql1="select * from users";deal.update(sql);List<User> list=deal.query(sql1);ActionContext context=ActionContext.getContext();Map session=context.getSession();session.put("list", list);if(list.size()>0)return SUCCESS;return "error";}}dao层:其中javabean也在这个包中。
javabean:
package com.swpu.homework.dao;public class User {private String username;private int id;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getId() {return id;}public void setId(int id) {this.id = id;}}数据库操作封装类:
package com.swpu.homework.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class DBUtils {public ResultSet resultSet = null;public static final String URL = "jdbc:mysql://127.0.0.1/warehouse?useUnicode=true&characterEncoding=UTF-8";public static final String NAME = "com.mysql.jdbc.Driver";public static final String USER = "root";public static final String PASSWORD = "";public Connection conn=null;public PreparedStatement statement=null;public User user=null;public DBUtils(){try {Class.forName(NAME);conn=DriverManager.getConnection(URL, USER, PASSWORD);}catch (ClassNotFoundException e) {e.printStackTrace();}catch (SQLException e){e.printStackTrace();}}public List<User> executeQuery(String sql){List<User> list=new ArrayList<User>();try {statement=(PreparedStatement)conn.prepareStatement(sql);resultSet=statement.executeQuery();while(resultSet.next()){user = new User();user.setId(Integer.valueOf(resultSet.getString(1)));user.setUsername(resultSet.getString(2));list.add(user);}}catch (SQLException e) {e.printStackTrace();}return list;}public void update(String sql) {try{statement=(PreparedStatement)conn.prepareStatement(sql);statement.executeUpdate(sql);}catch (SQLException e) {e.printStackTrace();}}}service层:进行简单的逻辑处理。
package com.swpu.homework.service;import java.util.ArrayList;import java.util.List;import com.swpu.homework.dao.DBUtils;import com.swpu.homework.dao.User;public class DealData {DBUtils utils=new DBUtils();public void update(String sql) {utils.update(sql);}public List<User> query(String sql1) {List<User> list=new ArrayList<User>();list=utils.executeQuery(sql1);return list;}}
登录界面:
<%@ 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">--> </head> <body> <form action="Login.action"> <table border=1><tr><td colspan="2" align="center">登录</td></tr><tr><td>id:</td><td><input type="text" name="user.id"></td></tr><tr><td>用户名:</td><td><input type="text" name="user.username"></td></tr> <tr><td colspan="2" align="center"><input type="submit" value="注册"/><input type="reset" value="重置"/></td></tr> </table> </form> </body></html>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="default" namespace="/" extends="struts-default"><action name="Login" class="com.swpu.homework.action.UserAction"><result>/success.jsp</result></action></package></struts>
其实弄懂struts的流程之后,写些简单的还是没什么问题,只是因为不熟悉,所以会遇到一些小问题,而且解决起来还很麻烦,哎,代码码多了就好了。加油。
阅读全文
0 0
- 实训--day10
- Hwadee实训--day10
- day10
- day10
- day10
- day10
- day10
- day10
- DAY10
- day10
- day10
- day10
- Day10
- day10
- Day10
- day10
- day10
- DAY10
- poj 3616 Milking Time
- 报数出队,输入n与m,找到最后一个人
- sudo apt-get update出错!
- [C++标准模板库:自修教程与参考手册]关于auto_ptr
- Linux 进程调度浅析
- 实训--day10
- Linux内核工程导论——linux学习和职业曲线(初学者,中级,高级都可参考)
- BeautifulSoup学习之CSS选择器
- js技术--正则表达式
- httpclient
- springmvc标签<mvc:annotation-driven/>(十二)
- hibernate异常 Session was already closed
- react native打包出现unable to process incoming event 'ProcessComplete' <ProgressCompleteEvent>
- iOS app崩溃率,如何解决线上闪退