Jsp+Struts2+JavaBean+DAO开发模式(1)
DAO模式就实现了把数据库表的操作转化对Java类的操作,从而提高程序的可读性,并实现更改数据库的方便性。其架构图如下图。
一共分为五个组件(component)
jsp提交页面(一下四其中的一个例子,HTML的例子)
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <html>
- <head> <title>添加信息提交页面</title>
- <style type="text/css">
- body{
- background-image:url(src.img/6.jpg); /*图片地址*/
- background-origin:content; /*从content区域开始显示背景*/
- background-position:50% 5%; /* 图片上下左右居中 */
- background-size:cover; /* 保持图像本身的宽高比例,将图片缩放到宽度或高度正好适应定义背景的区域 */
- background-repeat:no-repeat; /* 图像不重复显示 */
- }
- td{font-size: 12px;}
- h2{margin: 0px}
- table {
- background-color: rgba(255, 255, 255, 0.9);
- margin-top:200px;
- margin-left: center;
- height: 50px;
- width: 300px;
- border-radius: 6px;
- }
- td.{
- text-align: center;
- align: center;
- font-family: 微软雅黑;
- font-size: 20px;
- }
- input.submit {
- align:center;
- background:#0080ff;
- width: 100px;
- font-size: 25px;
- font-family:微软雅黑;
- color: #ffffff;
- border:1px;
- border-radius: 6px;
- }
- </style>
- </head>
- <body>
- <form action="jsreg" method="post">
- <table border="0" width="238" height="252">
- <tr><td>教师</td><td><input type="text" name="username"></td></tr>
- <tr><td>密码</td><td><input type="text" name="ps"></td></tr>
- <tr align="center">
- <td colspan="2">
- <input type="submit" value="登录">
- </td>
- <td>
- <a href="updateteacher.jsp" >忘记密码?</a>
- </td>
- </tr>
- </table>
- </form>
- </body>
- </html>
Struts.xml的配置(Congfiguration)文件
- </action>
- <action name="jsreg" class="Action.ther">
- <result name="success">/index_student_left.jsp</result>
- </action>
JavaBean如下
- public class Teacher {
- private String username;
- private String ps;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPs() {
- return ps;
- }
- public void setPs(String ps) {
- this.ps = ps;
- }
- }
接口类型如下
- import domain.Teacher;
- public interface Iteacher {
- public abstract Teacher find (Teacher te) throws Exception;
- }
DAO如下
- package dao;
- import java.sql.*;
- import db.DbConnect;
- import domain.Teacher;
- public class TeacherDAO implements Iteacher{
- protected static final String FIELDS_INSERT="username,ps";
- protected static String SELECT_SQL="select "+FIELDS_INSERT+" from Teacher where username=?";
- protected static String UPDATE_SQL="update Teacher set "+"username=?,ps=? where username=?";
- public Teacher find(Teacher te) throws Exception {
- Connection con=null;
- PreparedStatement prepStmt=null;
- ResultSet rs=null;
- Teacher te2=null;
- try{
- con=DbConnect.getDBconnection();
- prepStmt=con.prepareStatement(SELECT_SQL);
- prepStmt.setString(1, te.getUsername());
- rs=prepStmt.executeQuery();
- if(rs.next()){
- te2=new Teacher();
- te2.setUsername(rs.getString(1));
- te2.setPs(rs.getString(2));
- }
- }catch(Exception e){
- }finally{
- DbConnect.closeDB(con, prepStmt, rs);
- }
- return te2;
- }
连接数据库的Dbconnect
- package db;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- public class DbConnect {
- private static String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
- private static String userName="sa";
- private static String userpwd="13481195624q";
- private static String dbName="Student";
- public static Connection getDBconnection() {
- String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
- try {
- Class.forName(driverName);
- Connection con=DriverManager.getConnection(dbURL,userName,userpwd);
- return con;
- }catch(Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- public static void closeDB(Connection con, PreparedStatement pstm, ResultSet rs) {
- try {
- if(rs!=null)rs.close();
- if(pstm!=null)pstm.close();
- if(con!=null)con.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- }
- }
执行Action页面
- package Action;
- import dao.TeacherDAO;
- import domain.Teacher;
- import java.util.Map;
- import java.util.regex.*;
- import com.opensymphony.xwork2.ActionContext;
- import com.opensymphony.xwork2.ActionSupport;
- import javax.servlet.http.HttpServletRequest;
- import org.apache.struts2.ServletActionContext;
- public class ther extends ActionSupport{
- private HttpServletRequest request;
- public String execute() throws Exception {
- request=ServletActionContext.getRequest();
- Teacher te=new Teacher();
- te.setUsername(request.getParameter("username"));
- te.setPs(request.getParameter("ps"));
- TeacherDAO te2=new TeacherDAO();
- try {
- te=te2.find(te);
- request.setAttribute("teacher", te);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return "success";
- }
- }
显示的JSP页面
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@page import="java.util.List"%>
- <%@page import="domain.Teacher"%>
- <html>
- <head><title>所有学生信息</title>
- <style type="text/css">
- body{
- background-image:url(src.img/7.jpg); /*图片地址*/
- background-origin:content; /*从content区域开始显示背景*/
- background-position:50% 5%; /* 图片上下左右居中 */
- background-size:cover; /* 保持图像本身的宽高比例,将图片缩放到宽度或高度正好适应定义背景的区域 */
- background-repeat:no-repeat; /* 图像不重复显示 */
- }
- td{font-size: 12px;}
- h2{margin: 0px}
- table {
- background-color: rgba(255, 255, 255, 0.9);
- margin-top:200px;
- margin-left: center;
- height: 50px;
- width: 300px;
- border-radius: 6px;
- }
- td.{
- text-align: center;
- align: center;
- font-family: 微软雅黑;
- font-size: 20px;
- }
- </style>
- </head>
- <body>
- <table align="center" width="450" border="1" height="180"
- bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">
- <tr bgcolor="white">
- <td align="center" colspan="5">
- <h2>所有教师信息</h2>
- </td>
- </tr>
- <tr align="center" bgcolor="#e1ffc1">
- <td><b>姓名</b></td>
- <td><b>密码</b></td>
- </tr>
- <%Teacher teacher=(Teacher)request.getAttribute("teacher");%>
- <tr align="center" bgcolor="white">
- <td><%=teacher.getUsername()%></td>
- <td><%=teacher.getPs()%></td>
- </tr>
- </table>
- </body>
- </html>
教师信息如下
Jsp+Struts2+JavaBean+DAO开发模式(1)的更多相关文章
- Jsp+Servlet+JavaBean经典MVC模式理解
MVC模式目的(实现Web系统的职能分工). 在Java EE中,Jsp+Servlet+JavaBean算是里面经典的模式,是初学者必备的知识技能.M, Model(模型)实现系统的业务逻辑 1.通 ...
- struts2的DevMode(开发模式)模式
本文转自:http://blog.csdn.net/q1054261752/article/details/48687119 在实际应用开发或者是产品部署的时候,对应着两种模式: ① 开发模式(dev ...
- jsp+servlet+javaBean+Dao
一.Servlet程序各模块介绍1.JSP 用于显示.收集数据的部分.2.Servlet 用于验证数据.实例化JavaBean.调用DAO连接数据库.控制页面跳转3.DAO 用于连接数据库及进行数据库 ...
- 基于jsp+servlet+javabean的MVC模式简单应用
原先写在CSDN的一篇,我直接扒过来吧.之前打算在CSDN的,结果写了几回,发现他那个发布系统简直烂到家,经常丢失图片各种.所以很长一段时间我也没写什么. 一.MVC模式 1.M : javabea ...
- DAO 开发模式的几个类
1, vo --> Emp.java 包括getter setter方法 2, dbc --> DatabaseConnection.java 数据库打开关闭 3, ...
- 13jsp、javaWeb开发模式
13jsp.javaWeb开发模式-2018/07/25 1.jsp jsp实际上就是servlet.jsp=html+java,为用户提供动态内容 不适合编写Java逻辑 2.JSP原理 翻译(生成 ...
- jsp的开发模式
JSP 存在两种 开发模式1.Model1 : JSP + JavaBean * 不适合开发业务逻辑特别复杂web应用 ----- 业务逻辑复杂,控制代码多,而在jsp中编写控制代码,十分不便 *JS ...
- jsp学习笔记:mvc开发模式
jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...
- Java基础85 MVC开发模式
1.MVC开发模式 本文用 Servlet+JSP+javaBean 的开发模式来讲解 Model:用javabean实现,用于封装业务数据View:用jsp实现,用于显示数据Controller:用 ...
随机推荐
- 解决idea下载依赖包慢到出奇
右键项目选中maven选项,然后选择“open settings.xml”或者 “create settings.xml”,然后把如下代码粘贴进去就可以了.重启IDE. <?xml versio ...
- 代码: jquery 插件开发(自用插件)
http://www.imooc.com/learn/99 阿当大话西游之WEB组件 2016-4-19 jquery插件开发: 2016-3-1 http://www.cnblogs.com/Way ...
- 转载:oracle 启动过程--oracle深入研究
Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是 ...
- 在Docker环境下部署Kafka
参考:https://blog.csdn.net/u011537073/article/details/70767064
- leetcode1027
最直接的思路是三层循环,但是会超时,代码如下: public class Solution { public int LongestArithSeqLength2(int[] A) { ; var l ...
- phpstudy+dvwa配置
1.Apache端口被系统进程占用(Pid一般为4) -- 修改apache端口,然后通过localhost:端口号访问 2.DVWA System error - config file not f ...
- cfile fopen fopen_s win10下打开文件失败
vc程序在win10下面使用fopen 打开文件失败,在网上查 了下是因为UAC权限的问题如下: 由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统 ...
- Win32API标准模板
#include<Windows.h> LRESULT CALLBACK WndProc //处理发送到窗口的消息的应用程序定义的函数.wndproc类型定义指向此回调函数的指针. //W ...
- 图集内子图压缩及 ETC2 fallback选项的作用
今天研究发现,图集内的小图最好也是2的N次方或4的倍数 比如这个 采用ECT2 压缩后里面有些子图很花,就是压失败了 失败的原因是尺寸不合规则. 这个由16位改为32位就不花了,意思是当ECT2压缩失 ...
- 微信小程序实现计算器功能
page { height:100%;} .calculator { width: 100%; height: 100vh; border:solid 1px; background: rgb(238 ...