原始servlet+hibernate+struts2,从前台到后台的整个过程
生活随笔
收集整理的這篇文章主要介紹了
原始servlet+hibernate+struts2,从前台到后台的整个过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現在三大框架的興起ssh spring ?springmvc 基于注解式的編程簡單方便了開發,但是讓我感覺摸不著頭緒,框架固然是好,提高了開發效率,
對企業有很大的幫助,框架封裝的一些底層的東西讓我不知道為什么要這么做,只知道該這么做,編程的路線肯定是簡單快捷,趨勢就是隨便點點拖拖,就是一個項目,以后就沒有什么代碼編程了,我就是好奇為什么要這樣,底層的東西到底是什么,閑來無事搞個servlet 玩玩,看看原始的servle怎么干活的,
我習慣先走個流程, 前臺頁面執行操作后臺來處理
一個添加操作,輸入點擊添加 進入servlet :?../servlet/addTeacherType.html (創建servletshi在web.xml中配置)
1 頁面userType_add.jsp?
<%@ page language="java" contentType="text/html;charSet=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>添加教師類型</title><link rel="stylesheet" href="../style/myschool.css"/><style type="text/css"> .td1{text-align: right; } .td2{text-align: left; } </style><script type="text/javascript" src="../script/myschool_validate.js"></script><script type="text/javascript" src="../script/jquery-1.9.1.js"></script><script type="text/javascript">function goBack() {window.self.location="userType_maint.jsp";}function addUserType() {var typeName=jQuery("#typeName").val();if(typeName==""){alert("教師類型不能為空!");}else{//參數typeName:通過post傳typeName值 在servlet中req.getParameter("typeName")獲取;jQuery.post("../servlet/addTeacherType.html",{typeName:typeName},function(data){alert(JSON.stringify(data)); var www=jQuery(data).find("root").text();alert(www);var r=jQuery(data).find("resultss").text();if(r==1){alert("添加成功!");}else if(r==2){alert("該類型名稱已存在!");}else{alert("添加出現異常!"); }},'xml');}}</script></head><body class="body1"><form action="" name="userForm" target="_self" id="userForm" ><div align="center"><table width="95%" border="0" cellspacing="2" cellpadding="2"><tr><td>?</td></tr></table><table width="95%" border="0" cellspacing="0" cellpadding="0"><tr><td width="522" class="p1" height="25"><img src="../images/mark_arrow_03.gif" width="14" height="14"/><b>系統管理>>教師維護>>添加</b></td></tr></table><hr width="97%" align="center" size="0"/><table width="95%" border="0" cellpadding="0" cellspacing="0"><tr><td class="td1" width="22%" height="29"><font color="#FF0000">*</font>教師類型名稱:?</td><td class="td2" width="78%"><input id="typeName" type="text" class="text1" size="10" maxlength="10"/></td></tr></table><hr width="97%" align="center" size="0"/><div align="center"><input name="btnAdd" class="button1" type="button" id="btnAdd"value="添加" οnclick="addUserType()"/><input name="btnBack" class="button1" type="button" id="btnBack"value="返回" οnclick="goBack()" /></div></div></form></body> </html>
web.xml 配置servlet ?在這里servlet找到對應的類執行doPost
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><display-name></display-name><welcome-file-list><welcome-file>index.html</welcome-file></welcome-file-list><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><!-- 添加教師類型 ,參數:(typeName 類型名稱) --><servlet-name>addTeacherType</servlet-name><servlet-class>com.myschool.servlet.AddTeacherTypeServlet</servlet-class></servlet><servlet-mapping><servlet-name>addTeacherType</servlet-name><url-pattern>/servlet/addTeacherType.html</url-pattern></servlet-mapping> </web-app>
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.myschool.service.TeacherTypeManager;public class AddTeacherTypeServlet extends HttpServlet{//1.頁面/myschool/WebRoot/sysmgr/userType_add.jsp 訪問servlet (/servlet/addTeacherType.html)//通過web.xml配置的/servlet/addTeacherType.html// 2.定位到servlet 這個類執行dopost();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {this.doPost(req, resp);//注意這個地方可以開個口 來切dopost()}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {String typeName=req.getParameter("typeName");//獲取頁面的值標簽 name = "typeName"int r=TeacherTypeManager.getInstance().addTeacherType(typeName);//1 .addTeacher.jsp代碼 看servle請求http://localhost:8080/項目/servlet/addTeacherType.html?typeName=化學//2. 進入xml 如下/** * <?xml version="1.0" encoding="UTF-8"?>* <%@ page language="java" contentType="text/xml;charSet=UTF-8" * pageEncoding="UTF-8"%>* <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>* <root>* <result><c:out value="${result}"></c:out></result><!-- 1:成功 0:出現異常 2:該教師編號已經存在 -->* </root>*///3. 在頁面 var r=jQuery(data).find("result").text();獲取xml中result的值req.setAttribute("result", r);//${result}req.getRequestDispatcher("../view/sysmgr/addTeacherType.jsp").forward(req, resp);//發送到xml} }
hibernate.cfg.xml ,和xxxxx.hbm.xml 就不貼了
service層
import java.util.List;import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import com.myschool.entity.TeacherType; import com.myschool.util.HibernateUtil; import com.myschool.util.PageModel;public class TeacherTypeManager {private static TeacherTypeManager instance;public static TeacherTypeManager getInstance(){if(instance==null){instance=new TeacherTypeManager();} return instance;}/*** 根據類型名稱查找類型對象* @param typeName* @return*/public TeacherType getTeacherType(String typeName){Session session=HibernateUtil.getSessionFactory().getCurrentSession();try{session.beginTransaction();List list=session.createQuery("from TeacherType where name=?").setString(0,typeName).list();if(list.size()>0){return (TeacherType)list.get(0);}}catch(Exception e){e.printStackTrace();}finally{//session.close();session.getSessionFactory().close();}return null;}/*** 根據類型名稱添加教師類型* @param typeName* @return*/public int addTeacherType(String typeName){Session session=HibernateUtil.getSessionFactory().getCurrentSession();try{session.beginTransaction();TeacherType tt=this.getTeacherType(typeName);if(tt==null){tt=new TeacherType();tt.setName(typeName);//這里保存的時候有待解決?持有的對象不可以保存 session.merge(tt);return 1;}else{return 2;}}catch(Exception e){e.printStackTrace();return 3;}finally{session.getTransaction().commit();session.getSessionFactory().close();}<span style="font-family: Arial, Helvetica, sans-serif;"> </span> <pre name="code" class="java">} addTeacherType.jsp ? ? xml<?xml version="1.0" encoding="UTF-8"?> <%@ page language="java" contentType="text/xml;charSet=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <root>ddd<resultss><c:out value="${result}"></c:out></resultss><!-- 1:成功;2:已經存在;3:出現異常 --> </root>
?用get請求時返回的頁面
總結
以上是生活随笔為你收集整理的原始servlet+hibernate+struts2,从前台到后台的整个过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JEECG datagrid 页面刷新r
- 下一篇: 【机器学习】机器学习算法 随机森林学习