实训--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的流程之后,写些简单的还是没什么问题,只是因为不熟悉,所以会遇到一些小问题,而且解决起来还很麻烦,哎,代码码多了就好了。加油。