DAO模式就实现了把数据库表的操作转化对Java类的操作,从而提高程序的可读性,并实现更改数据库的方便性。其架构图如下图。

一共分为五个组件(component)

jsp提交页面(一下四其中的一个例子,HTML的例子)

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <html>
  4. <head> <title>添加信息提交页面</title>
  5. <style type="text/css">
  6. body{
  7. background-image:url(src.img/6.jpg); /*图片地址*/
  8. background-origin:content; /*从content区域开始显示背景*/
  9. background-position:50% 5%; /* 图片上下左右居中 */
  10. background-size:cover; /* 保持图像本身的宽高比例,将图片缩放到宽度或高度正好适应定义背景的区域 */
  11. background-repeat:no-repeat; /* 图像不重复显示 */
  12. }
  13. td{font-size: 12px;}
  14. h2{margin: 0px}
  15. table {
  16. background-color: rgba(255, 255, 255, 0.9);
  17. margin-top:200px;
  18. margin-left: center;
  19. height: 50px;
  20. width: 300px;
  21. border-radius: 6px;
  22. }
  23. td.{
  24. text-align: center;
  25. align: center;
  26. font-family: 微软雅黑;
  27. font-size: 20px;
  28. }
  29. input.submit {
  30. align:center;
  31. background:#0080ff;
  32. width: 100px;
  33. font-size: 25px;
  34. font-family:微软雅黑;
  35. color: #ffffff;
  36. border:1px;
  37. border-radius: 6px;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <form action="jsreg" method="post">
  43. <table border="0" width="238" height="252">
  44. <tr><td>教师</td><td><input type="text" name="username"></td></tr>
  45. <tr><td>密码</td><td><input type="text" name="ps"></td></tr>
  46. <tr align="center">
  47. <td colspan="2">
  48. <input type="submit" value="登录">
  49. </td>
  50. <td>
  51. <a href="updateteacher.jsp" >忘记密码?</a>
  52. </td>
  53. </tr>
  54. </table>
  55. </form>
  56. </body>
  57. </html>

Struts.xml的配置(Congfiguration)文件

  1. </action>
  2. <action name="jsreg" class="Action.ther">
  3. <result name="success">/index_student_left.jsp</result>
  4. </action>

JavaBean如下

  1. public class Teacher {
  2. private String username;
  3. private String ps;
  4. public String getUsername() {
  5. return username;
  6. }
  7. public void setUsername(String username) {
  8. this.username = username;
  9. }
  10. public String getPs() {
  11. return ps;
  12. }
  13. public void setPs(String ps) {
  14. this.ps = ps;
  15. }
  16. }

接口类型如下

  1. import domain.Teacher;
  2.  
  3. public interface Iteacher {
  4. public abstract Teacher find (Teacher te) throws Exception;
  5. }

DAO如下

  1. package dao;
  2.  
  3. import java.sql.*;
  4. import db.DbConnect;
  5. import domain.Teacher;
  6.  
  7. public class TeacherDAO implements Iteacher{
  8. protected static final String FIELDS_INSERT="username,ps";
  9. protected static String SELECT_SQL="select "+FIELDS_INSERT+" from Teacher where username=?";
  10. protected static String UPDATE_SQL="update Teacher set "+"username=?,ps=? where username=?";
  11. public Teacher find(Teacher te) throws Exception {
  12. Connection con=null;
  13. PreparedStatement prepStmt=null;
  14. ResultSet rs=null;
  15. Teacher te2=null;
  16. try{
  17. con=DbConnect.getDBconnection();
  18. prepStmt=con.prepareStatement(SELECT_SQL);
  19. prepStmt.setString(1, te.getUsername());
  20. rs=prepStmt.executeQuery();
  21. if(rs.next()){
  22. te2=new Teacher();
  23. te2.setUsername(rs.getString(1));
  24. te2.setPs(rs.getString(2));
  25. }
  26. }catch(Exception e){
  27. }finally{
  28. DbConnect.closeDB(con, prepStmt, rs);
  29. }
  30. return te2;
  31. }

连接数据库的Dbconnect

  1. package db;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. public class DbConnect {
  10. private static String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  11. private static String userName="sa";
  12. private static String userpwd="13481195624q";
  13. private static String dbName="Student";
  14. public static Connection getDBconnection() {
  15. String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
  16. try {
  17. Class.forName(driverName);
  18. Connection con=DriverManager.getConnection(dbURL,userName,userpwd);
  19. return con;
  20. }catch(Exception e) {
  21. e.printStackTrace();
  22. }
  23. return null;
  24. }
  25. public static void closeDB(Connection con, PreparedStatement pstm, ResultSet rs) {
  26. try {
  27. if(rs!=null)rs.close();
  28. if(pstm!=null)pstm.close();
  29. if(con!=null)con.close();
  30. }catch(SQLException e){
  31. e.printStackTrace();
  32. }
  33. }
  34. }

执行Action页面

  1. package Action;
  2.  
  3. import dao.TeacherDAO;
  4. import domain.Teacher;
  5. import java.util.Map;
  6. import java.util.regex.*;
  7. import com.opensymphony.xwork2.ActionContext;
  8. import com.opensymphony.xwork2.ActionSupport;
  9. import javax.servlet.http.HttpServletRequest;
  10. import org.apache.struts2.ServletActionContext;
  11.  
  12. public class ther extends ActionSupport{
  13. private HttpServletRequest request;
  14. public String execute() throws Exception {
  15. request=ServletActionContext.getRequest();
  16. Teacher te=new Teacher();
  17. te.setUsername(request.getParameter("username"));
  18. te.setPs(request.getParameter("ps"));
  19. TeacherDAO te2=new TeacherDAO();
  20. try {
  21. te=te2.find(te);
  22. request.setAttribute("teacher", te);
  23. } catch (Exception e) {
  24. e.printStackTrace();
  25. }
  26. return "success";
  27. }
  28. }

显示的JSP页面

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@page import="java.util.List"%>
  4. <%@page import="domain.Teacher"%>
  5. <html>
  6. <head><title>所有学生信息</title>
  7. <style type="text/css">
  8. body{
  9. background-image:url(src.img/7.jpg); /*图片地址*/
  10. background-origin:content; /*从content区域开始显示背景*/
  11. background-position:50% 5%; /* 图片上下左右居中 */
  12. background-size:cover; /* 保持图像本身的宽高比例,将图片缩放到宽度或高度正好适应定义背景的区域 */
  13. background-repeat:no-repeat; /* 图像不重复显示 */
  14. }
  15. td{font-size: 12px;}
  16. h2{margin: 0px}
  17. table {
  18. background-color: rgba(255, 255, 255, 0.9);
  19. margin-top:200px;
  20. margin-left: center;
  21. height: 50px;
  22. width: 300px;
  23. border-radius: 6px;
  24. }
  25. td.{
  26. text-align: center;
  27. align: center;
  28. font-family: 微软雅黑;
  29. font-size: 20px;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <table align="center" width="450" border="1" height="180"
  35. bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">
  36. <tr bgcolor="white">
  37. <td align="center" colspan="5">
  38. <h2>所有教师信息</h2>
  39. </td>
  40. </tr>
  41. <tr align="center" bgcolor="#e1ffc1">
  42. <td><b>姓名</b></td>
  43. <td><b>密码</b></td>
  44. </tr>
  45. <%Teacher teacher=(Teacher)request.getAttribute("teacher");%>
  46. <tr align="center" bgcolor="white">
  47. <td><%=teacher.getUsername()%></td>
  48. <td><%=teacher.getPs()%></td>
  49. </tr>
  50. </table>
  51. </body>
  52. </html>

教师信息如下

Jsp+Struts2+JavaBean+DAO开发模式(1)的更多相关文章

  1. Jsp+Servlet+JavaBean经典MVC模式理解

    MVC模式目的(实现Web系统的职能分工). 在Java EE中,Jsp+Servlet+JavaBean算是里面经典的模式,是初学者必备的知识技能.M, Model(模型)实现系统的业务逻辑 1.通 ...

  2. struts2的DevMode(开发模式)模式

    本文转自:http://blog.csdn.net/q1054261752/article/details/48687119 在实际应用开发或者是产品部署的时候,对应着两种模式: ① 开发模式(dev ...

  3. jsp+servlet+javaBean+Dao

    一.Servlet程序各模块介绍1.JSP 用于显示.收集数据的部分.2.Servlet 用于验证数据.实例化JavaBean.调用DAO连接数据库.控制页面跳转3.DAO 用于连接数据库及进行数据库 ...

  4. 基于jsp+servlet+javabean的MVC模式简单应用

    原先写在CSDN的一篇,我直接扒过来吧.之前打算在CSDN的,结果写了几回,发现他那个发布系统简直烂到家,经常丢失图片各种.所以很长一段时间我也没写什么. 一.MVC模式 1.M :  javabea ...

  5. DAO 开发模式的几个类

    1, vo -->  Emp.java      包括getter setter方法 2,   dbc  --> DatabaseConnection.java   数据库打开关闭 3,  ...

  6. 13jsp、javaWeb开发模式

    13jsp.javaWeb开发模式-2018/07/25 1.jsp jsp实际上就是servlet.jsp=html+java,为用户提供动态内容 不适合编写Java逻辑 2.JSP原理 翻译(生成 ...

  7. jsp的开发模式

    JSP 存在两种 开发模式1.Model1 : JSP + JavaBean * 不适合开发业务逻辑特别复杂web应用 ----- 业务逻辑复杂,控制代码多,而在jsp中编写控制代码,十分不便 *JS ...

  8. jsp学习笔记:mvc开发模式

    jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...

  9. Java基础85 MVC开发模式

    1.MVC开发模式 本文用 Servlet+JSP+javaBean 的开发模式来讲解 Model:用javabean实现,用于封装业务数据View:用jsp实现,用于显示数据Controller:用 ...

随机推荐

  1. 解决idea下载依赖包慢到出奇

    右键项目选中maven选项,然后选择“open settings.xml”或者 “create settings.xml”,然后把如下代码粘贴进去就可以了.重启IDE. <?xml versio ...

  2. 代码: jquery 插件开发(自用插件)

    http://www.imooc.com/learn/99 阿当大话西游之WEB组件 2016-4-19 jquery插件开发: 2016-3-1 http://www.cnblogs.com/Way ...

  3. 转载:oracle 启动过程--oracle深入研究

    Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是 ...

  4. 在Docker环境下部署Kafka

    参考:https://blog.csdn.net/u011537073/article/details/70767064

  5. leetcode1027

    最直接的思路是三层循环,但是会超时,代码如下: public class Solution { public int LongestArithSeqLength2(int[] A) { ; var l ...

  6. phpstudy+dvwa配置

    1.Apache端口被系统进程占用(Pid一般为4) -- 修改apache端口,然后通过localhost:端口号访问 2.DVWA System error - config file not f ...

  7. cfile fopen fopen_s win10下打开文件失败

    vc程序在win10下面使用fopen 打开文件失败,在网上查 了下是因为UAC权限的问题如下: 由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统 ...

  8. Win32API标准模板

    #include<Windows.h> LRESULT CALLBACK WndProc //处理发送到窗口的消息的应用程序定义的函数.wndproc类型定义指向此回调函数的指针. //W ...

  9. 图集内子图压缩及 ETC2 fallback选项的作用

    今天研究发现,图集内的小图最好也是2的N次方或4的倍数 比如这个 采用ECT2 压缩后里面有些子图很花,就是压失败了 失败的原因是尺寸不合规则. 这个由16位改为32位就不花了,意思是当ECT2压缩失 ...

  10. 微信小程序实现计算器功能

    page { height:100%;} .calculator { width: 100%; height: 100vh; border:solid 1px; background: rgb(238 ...