整理一下从前写的SSH框架的例子,供新人学习,使用到了注解的方式.

  链接:https://pan.baidu.com/s/16i5dDIoDi4gOMsZfPvz6eg
  提取码:pjqa

  对新同学的建议:最好的学习方法是自己手动敲一遍,切不可看过别人写的,就觉得自己会做了

使用方式

  1、首先将项目mywork3.rar解压,导入到myeclipse中,注意修改applicationContext.xml 中用户名、密码,jdk使用1.6以上的就可以。

  解压后其目录结构如下:

  2、在mysql中新建数据库mydb

  3、导入SQL文件 user.sql

  4、启动项目,输入http://localhost:8080/mywork3/ 即可打开页面

源码备份

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <welcome-file-list>
  7. <welcome-file>index.jsp</welcome-file>
  8. </welcome-file-list>
  9. <!-- 用来定位Spring XML文件的上下文位置 -->
  10. <context-param>
  11. <param-name>contextConfigLocation</param-name>
  12. <param-value>classpath:applicationContext.xml</param-value>
  13. </context-param>
  14. <!-- spring监听 -->
  15. <listener>
  16. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  17. </listener>
  18. <!-- 过滤器将 Hibernate Session 绑定到请求线程中,它将自动被 Spring 的事务管理器探测到 -->
  19. <filter>
  20. <filter-name>openSessionInViewFilter</filter-name>
  21. <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  22. <init-param>
  23. <param-name>singleSession</param-name>
  24. <param-value>false</param-value>
  25. </init-param>
  26. </filter>
  27. <filter-mapping>
  28. <filter-name>openSessionInViewFilter</filter-name>
  29. <url-pattern>/*</url-pattern>
  30. </filter-mapping>
  31. <filter>
  32. <filter-name>struts2</filter-name>
  33. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  34. </filter>
  35. <filter-mapping>
  36. <filter-name>struts2</filter-name>
  37. <url-pattern>/*</url-pattern>
  38. </filter-mapping>
  39. </web-app>

applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-2.5.xsd
  9. http://www.springframework.org/schema/aop
  10. http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
  11. http://www.springframework.org/schema/tx
  12. http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
  13.  
  14. <!-- 用注解方法注入bean 上边schemaLocation的三条语句顺序很重要,否则报错 -->
  15. <context:annotation-config />
  16. <context:component-scan base-package="com" />
  17.  
  18. <!-- 数据库连接池 -->
  19. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
  20. destroy-method="close">
  21. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  22. <property name="url" value="jdbc:mysql://localhost:3306/mydb?useUnicode=true&amp;characterEncoding=UTF-8" />
  23. <property name="username" value="root" />
  24. <property name="password" value="123456" />
  25. </bean>
  26.  
  27. <!-- 配置sessionFactory ,数据库配置在hibernate.cfg.xml中-->
  28. <!--LocalSessionFactoryBean 加载bean方式 <mapping resource="com/model/User.hbm.xml"/>
  29. AnnotationSessionFactoryBean 加载bean方式 <mapping class="com.model.User"/> ,它主要功能是取消了hbm.xml文件
  30. -->
  31. <bean id="sessionFactory"
  32. class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  33. <property name="dataSource" ref="dataSource" />
  34. <!-- 配置实体描述文件 -->
  35. <property name="mappingResources">
  36. <list>
  37. <value>com/model/User.hbm.xml</value>
  38. </list>
  39. </property>
  40. <!--扫描com.cuangwu包下以及子包种有 @Service @Controller @Repository @Component 注解的类,一旦发现,则将其纳入到spring容器中管理
  41. 此spring.jar必须是 Spring2.5以上版本的,因为,Spring2.5之前org.springframework.orm.hibernate3.LocalSessionFactoryBean类中,
  42. 并没有 packageToScan 这个属性,只有mappingResuorces这个属性。而packageToScan这个属性正是映射包中的类,而mappingResuorces只是映射某个文件。-->
  43. <!-- <property name="packagesToScan" > <list> <value>com.model</value>
  44. </list> </property> -->
  45. <property name="hibernateProperties">
  46. <props>
  47. <prop key="hibernate.format_sql">true</prop>
  48. <prop key="hibernate.hbn2dd1.auto">update</prop>
  49. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  50. </props>
  51. </property>
  52. </bean>
  53. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  54. <property name="sessionFactory" ref="sessionFactory" />
  55. </bean>
  56.  
  57. <!-- 配置事务管理器 -->
  58. <bean id="transactionManager"
  59. class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  60. <property name="sessionFactory" ref="sessionFactory" />
  61. </bean>
  62. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  63. <tx:attributes>
  64. <tx:method name="find*" read-only="true" />
  65. <tx:method name="add*" propagation="REQUIRED" />
  66. <tx:method name="delete*" propagation="REQUIRED" />
  67. <tx:method name="update*" propagation="REQUIRED" />
  68. </tx:attributes>
  69. </tx:advice>
  70. <!-- aop代理设置-->
  71. <aop:config>
  72. <aop:pointcut expression="execution(public * com.service..*.*(..))"
  73. id="myPointcut" />
  74. <aop:advisor advice-ref="txAdvice" pointcut-ref="myPointcut" />
  75. </aop:config>
  76. </beans>

struts.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  3. "http://struts.apache.org/dtds/struts-2.0.dtd">
  4. <struts>
  5. <constant name="struts.i18n.encoding" value="UTF-8" />
  6. <package name="struts2" extends="struts-default" namespace="/">
  7. <!-- 配置action当与spring整合,class=bean的名称(如果bean没有指定value,则首写字母要小写)) -->
  8. <action name="add" class="userAction" method="addUser" >
  9. <result name="success">success.jsp</result>
  10. <result name="error">fail.jsp</result>
  11. </action>
  12. <action name="query" class="userAction" method="queryUser">
  13. <result name="success">index.jsp</result>
  14. </action>
  15. <action name="delete" class="userAction" method="deleteUser">
  16. <result name="success">success.jsp</result>
  17. <result name="error">fail.jsp</result>
  18. </action>
  19. <action name="edit" class="userAction" method="editUser">
  20. <result name="editUser">editUser.jsp</result>
  21. <result name="success">success.jsp</result>
  22. </action>
  23. </package>
  24. </struts>

com.action.UserAction.java

  1. package com.action;
  2.  
  3. import java.util.List;
  4. import javax.annotation.Resource;
  5.  
  6. import org.apache.struts2.ServletActionContext;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.context.annotation.Scope;
  9. import org.springframework.stereotype.Component;
  10. import com.model.User;
  11. import com.opensymphony.xwork2.ActionSupport;
  12. import com.service.UserService;
  13.  
  14. @Component("userAction")
  15. @Scope("prototype")
  16. public class UserAction extends ActionSupport{
  17. /**
  18. *
  19. */
  20. private static final long serialVersionUID = 1L;
  21. @Autowired
  22. private UserService userService;
  23.  
  24. private User user;
  25.  
  26. private String searchText;
  27.  
  28. private List<User> users;
  29.  
  30. public User getUser() {
  31. return user;
  32. }
  33. public void setUser(User user) {
  34. this.user = user;
  35. }
  36. public UserService getUserService() {
  37. return userService;
  38. }
  39. @Resource
  40. public void setUserService(UserService userService) {
  41. this.userService = userService;
  42. }
  43.  
  44. public String addUser(){
  45. if(userService.exits(user.getUsername())){
  46. return ERROR;
  47. }
  48. userService.save(user);
  49. return SUCCESS;
  50. }
  51.  
  52. public String queryUser(){
  53. searchText = getParam("queryText");
  54. users = userService.queryUsers(searchText);
  55. return SUCCESS;
  56. }
  57.  
  58. public String editUser(){
  59. try {
  60. Integer param = Integer.parseInt(getParam("param"));
  61. if(param == 0){
  62. Integer id = Integer.parseInt(getParam("id"));
  63. user = userService.getUser( id);
  64. return "editUser";
  65. }else if(param == 1){
  66. userService.modifyUser(user);
  67. }
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. }
  71. return SUCCESS;
  72. }
  73.  
  74. public String deleteUser(){
  75. try {
  76. Integer param = Integer.parseInt(getParam("id"));
  77. userService.deleteUser(param);
  78. } catch (Exception e) {
  79. e.printStackTrace();
  80. }
  81. return queryUser() ;
  82. }
  83. public String getSearchText() {
  84. return searchText;
  85. }
  86. public void setSearchText(String searchText) {
  87. this.searchText = searchText;
  88. }
  89. protected String getParam(String key){
  90. return ServletActionContext.getRequest().getParameter(key);
  91. }
  92. public List<User> getUsers() {
  93. return users;
  94. }
  95. public void setUsers(List<User> users) {
  96. this.users = users;
  97. }
  98. }

com.dao.UserDao.java

  1. package com.dao;
  2.  
  3. import java.util.List;
  4. import javax.annotation.Resource;
  5. import org.springframework.orm.hibernate3.HibernateTemplate;
  6. import org.springframework.stereotype.Component;
  7. import com.model.User;
  8.  
  9. @Component
  10. public class UserDAO {
  11. private HibernateTemplate hibernateTemplate;
  12.  
  13. public HibernateTemplate getHibernateTemplate() {
  14. return hibernateTemplate;
  15. }
  16.  
  17. @Resource
  18. public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
  19. this.hibernateTemplate = hibernateTemplate;
  20. }
  21.  
  22. public void save(User user){
  23. hibernateTemplate.save(user);
  24. }
  25. public void update(User user){
  26. hibernateTemplate.update(user);
  27. }
  28. public void delete(Integer id){
  29. User user=getUser(id);
  30. hibernateTemplate.delete(user);
  31. }
  32. public User getUser(Integer id){
  33. return (User)this.hibernateTemplate.load(User.class,id);
  34. }
  35. public List<User> findByUsername(String username){
  36. return (List<User>) hibernateTemplate.find("from User u where u.username = ?",username);
  37. }
  38. public List<User> queryByUsername(String username){
  39. return (List<User>) hibernateTemplate.find("from User u where u.username like ?","%"+username+"%");
  40. }
  41. public List<User> findAllUsers(){
  42. return this.getHibernateTemplate().find("from User order by id");
  43. }
  44. }

com.model.User.java

  1. package com.model;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class User implements Serializable{
  6.  
  7. private static final long serialVersionUID = 1L;
  8. /**
  9. * 用户id
  10. */
  11. private int id;
  12. /**
  13. * 用户名
  14. */
  15. private String username;
  16. /**
  17. * 用户密码
  18. */
  19. private String userpassword;
  20. /**
  21. * 用户信息
  22. */
  23. private String usermessage;
  24. public int getId() {
  25. return id;
  26. }
  27. public void setId(int id) {
  28. this.id = id;
  29. }
  30. public String getUsername() {
  31. return username;
  32. }
  33. public void setUsername(String username) {
  34. this.username = username;
  35. }
  36. public String getUserpassword() {
  37. return userpassword;
  38. }
  39. public void setUserpassword(String userpassword) {
  40. this.userpassword = userpassword;
  41. }
  42. public String getUsermessage() {
  43. return usermessage;
  44. }
  45. public void setUsermessage(String usermessage) {
  46. this.usermessage = usermessage;
  47. }
  48. public static long getSerialversionuid() {
  49. return serialVersionUID;
  50. }
  51.  
  52. }

com.model.User.hbm.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4.  
  5. <hibernate-mapping>
  6. <class name="com.model.User" table="user" catalog="mydb">
  7. <id name="id" type="java.lang.Integer">
  8. <column name="id" />
  9. <generator class="assigned"></generator>
  10. </id>
  11. <property name="username" type="java.lang.String">
  12. <column name="username" length="30" not-null="true" unique="true"/>
  13. </property>
  14. <property name="userpassword" type="java.lang.String">
  15. <column name="userpassword" length="30" not-null="true" />
  16. </property>
  17. <property name="usermessage" type="java.lang.String">
  18. <column name="usermessage" length="30" />
  19. </property>
  20. </class>
  21. </hibernate-mapping>

com.service.UserService.java

  1. package com.service;
  2. import java.util.List;
  3.  
  4. import com.model.User;
  5.  
  6. public interface UserService {
  7. /**
  8. * 判断用户是否存在
  9. */
  10. public boolean exits(String username);
  11. /**
  12. * 保存用户
  13. */
  14. public void save(User user);
  15. /**
  16. * 修改用户
  17. */
  18. public void modifyUser(User user);
  19. /**
  20. * 删除用户
  21. */
  22. public void deleteUser(Integer id);
  23. /**
  24. * 获取指定id用户
  25. */
  26. public User getUser(Integer id);
  27. /**
  28. * 获取用户列表
  29. */
  30. public List<User> queryUsers(String username);
  31. }

com.service.UserServiceImp.java

  1. package com.service;
  2.  
  3. import java.util.List;
  4.  
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import org.springframework.transaction.annotation.Transactional;
  8. import com.dao.UserDAO;
  9. import com.model.User;
  10.  
  11. @Service("userService")
  12. public class UserServiceImp implements UserService {
  13. @Autowired
  14. private UserDAO userDAO;
  15.  
  16. @Override
  17. public boolean exits(String username){
  18. List<User> userList = userDAO.findByUsername(username);
  19. if(userList.size()>0)
  20. return true;
  21. else
  22. return false;
  23. }
  24.  
  25. @Override
  26. public List<User> queryUsers(String username){
  27. if(username == null || "".equals(username))
  28. return userDAO.findAllUsers();
  29. else return userDAO.queryByUsername(username);
  30. }
  31.  
  32. @Override
  33. public User getUser(Integer id){
  34. return userDAO.getUser(id);
  35. }
  36.  
  37. @Override
  38. @Transactional
  39. public void save(User user){
  40. userDAO.save(user);
  41. }
  42.  
  43. @Override
  44. @Transactional
  45. public void modifyUser(User user){
  46. userDAO.update(user);
  47. }
  48.  
  49. @Override
  50. @Transactional
  51. public void deleteUser(Integer id){
  52. userDAO.delete(id);
  53. }
  54. }

com.util.HibernateUtil.java

  1. package com.util;
  2.  
  3. import org.hibernate.SessionFactory;
  4. import org.hibernate.cfg.Configuration;
  5.  
  6. public class HibernateUtil {
  7. private static SessionFactory sf;
  8. static{
  9. SessionFactory sf = new Configuration().configure().buildSessionFactory();
  10. }
  11. }

editUser.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>SSH</title>
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18. <meta http-equiv="description" content="SSH">
  19.  
  20. </head>
  21.  
  22. <body>
  23. 编辑User
  24. <form action="edit.action" method="get">
  25. ID:<input type="text" name="user.id" value="${user.id}" readonly="readonly"><br/>
  26. UserName:<input type="text" name="user.username" value="${user.username}"><br/>
  27. UserPassword:<input type="password" name="user.userpassword" value="${user.userpassword}"><br/>
  28. UserMessage:<input type="text" name="user.usermessage" value="${user.usermessage}"><br/>
  29. <input type="hidden" name="param" value="1"/>
  30. <input type="submit" value="提交">
  31. <input type="reset" value="重置">
  32. </form>
  33. </body>
  34. </html>

fail.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme() + "://"
  5. + request.getServerName() + ":" + request.getServerPort()
  6. + path + "/";
  7. %>
  8.  
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  10. <html>
  11. <head>
  12. <base href="<%=basePath%>">
  13.  
  14. <title>fail</title>
  15. <meta http-equiv="pragma" content="no-cache">
  16. <meta http-equiv="cache-control" content="no-cache">
  17. <meta http-equiv="expires" content="0">
  18. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  19. <meta http-equiv="description" content="fail">
  20.  
  21. </head>
  22.  
  23. <body>
  24. <div style="red;">fail</div><br/>
  25. UserName不能相同
  26. <a href="query.action?queryText=">返回主页</a>
  27. </body>
  28. </html>

index.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>SSH</title>
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18. <meta http-equiv="description" content="SSH">
  19.  
  20. </head>
  21.  
  22. <body>
  23. 添加user,如果姓名没有冲突,那么就添加到数据库,如果姓名冲突了就不能添加,返回失败页面
  24. <form action="add.action" method="get">
  25. UserName:<input type="text" name="user.username"><br />
  26. UserPassword:<input type="password" name="user.userpassword"><br />
  27. UserMessage:<input type="text" name="user.usermessage"><br />
  28. <input type="submit" value="提交"> <input type="reset"
  29. value="重置">
  30. </form>
  31. 根据姓名查询,若不输入,则查询全部
  32. <form action="query.action" method="post">
  33. UserName: <input type="text" name="queryText" value="${searchText }" />
  34. <input type="submit" value="查询" />
  35. </form>
  36.  
  37. <table width="70%" border="1px" align="center" cellpadding="0"
  38. cellspacing="0">
  39. <thead>
  40. <tr bgcolor="#ff0">
  41. <th width="25%">编号</th>
  42. <th width="25%">姓名</th>
  43. <th width="25%">信息</th>
  44. <th width="25%">操作</th>
  45. </tr>
  46. </thead>
  47. <tbody>
  48. <c:forEach var="user" items="${users }">
  49. <tr>
  50. <td>${user.id}</td>
  51. <td>${user.username}</td>
  52. <td>${user.usermessage}</td>
  53. <td><a href="edit.action?param=0&id=${user.id}">编辑</a> <a
  54. href="delete.action?id=${user.id}">删除</a></td>
  55. </tr>
  56. </c:forEach>
  57. </tbody>
  58. </table>
  59.  
  60. </body>
  61. </html>

success.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>SSH</title>
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18. <meta http-equiv="description" content="SSH">
  19.  
  20. </head>
  21.  
  22. <body>
  23. 添加user,如果姓名没有冲突,那么就添加到数据库,如果姓名冲突了就不能添加,返回失败页面
  24. <form action="add.action" method="get">
  25. UserName:<input type="text" name="user.username"><br />
  26. UserPassword:<input type="password" name="user.userpassword"><br />
  27. UserMessage:<input type="text" name="user.usermessage"><br />
  28. <input type="submit" value="提交"> <input type="reset"
  29. value="重置">
  30. </form>
  31. 根据姓名查询,若不输入,则查询全部
  32. <form action="query.action" method="post">
  33. UserName: <input type="text" name="queryText" value="${searchText }" />
  34. <input type="submit" value="查询" />
  35. </form>
  36.  
  37. <table width="70%" border="1px" align="center" cellpadding="0"
  38. cellspacing="0">
  39. <thead>
  40. <tr bgcolor="#ff0">
  41. <th width="25%">编号</th>
  42. <th width="25%">姓名</th>
  43. <th width="25%">信息</th>
  44. <th width="25%">操作</th>
  45. </tr>
  46. </thead>
  47. <tbody>
  48. <c:forEach var="user" items="${users }">
  49. <tr>
  50. <td>${user.id}</td>
  51. <td>${user.username}</td>
  52. <td>${user.usermessage}</td>
  53. <td><a href="edit.action?param=0&id=${user.id}">编辑</a> <a
  54. href="delete.action?id=${user.id}">删除</a></td>
  55. </tr>
  56. </c:forEach>
  57. </tbody>
  58. </table>
  59.  
  60. </body>
  61. </html>

原创文章,欢迎转载,转载请注明出处

我的SSH框架实例(附源码)的更多相关文章

  1. C#共享内存实例 附源码

    原文 C#共享内存实例 附源码 网上有C#共享内存类,不过功能太简单了,并且写内存每次都从开头写.故对此进行了改进,并做了个小例子,供需要的人参考. 主要改进点: 通过利用共享内存的一部分空间(以下称 ...

  2. 【Java】SSM框架整合 附源码

    前言 前面已经介绍Spring和Mybatis整合,而本篇介绍在IDEA下Spring.Spring MVC.Mybatis(SSM)三个框架的整合,在阅读本篇之前,建议大家先去了解一下Spring. ...

  3. 教你搭建SpringMVC框架( 附源码)

    一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...

  4. Android网络:HTTP之利用HttpURLConnection访问网页、获取网络图片实例 (附源码)

    http://blog.csdn.net/yanzi1225627/article/details/22222735 如前文所示的TCP局域网传送东西,除了对传输层的TCP/UDP支持良好外,Andr ...

  5. 教你搭建SpringSecurity3框架(附源码)

    源码下载地址:http://pan.baidu.com/s/1qWsgIg0 一.web.xml <?xml version="1.0" encoding="UTF ...

  6. MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)

    前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...

  7. 业务类接口在TCP,HTTP,BLL模式下的实例 设计模式混搭 附源码一份

    业务类接口在TCP,HTTP,BLL模式下的实例 设计模式混搭 附源码一份 WinForm酒店管理软件--框架这篇随笔可以说是我写的最被大家争议的随笔,一度是支持和反对是一样的多.大家对我做的这个行业 ...

  8. Ext.NET 4.1 系统框架的搭建(后台) 附源码

    Ext.NET 4.1 系统框架的搭建(后台) 附源码 代码运行环境:.net 4.5  VS2013 (代码可直接编译运行) 预览图: 分析图: 上面系统的构建包括三块区域:North.West和C ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码]

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码] 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用 ...

  10. (转)干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码)

    干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码) 该博客来源自:https://mp.weixin.qq.com/s?__biz=MzA4NzE1NzYyMw==& ...

随机推荐

  1. pycharm 中 import requests 报错

    一 , 使用Pycharm来抓取网页的时候,要导入requests模块,但是在pycharm中 import requests 报错. 原因: python中还没有安装requests库 解决办法: ...

  2. javascript与php与python的函数写法区别与联系

    1.javascript函数写法种类: (一).第一种 function test(param){ return 111; } (二).第二种 var test = function(param){ ...

  3. Elasticsearch 关键字:索引,类型,字段,索引状态,mapping,文档

    1. 索引(_index)索引:说的就是数据库的名字.我这个说法是对应到咱经常使用的数据库. 结合es的插件 head 来看. 可以看到,我这个地方,就有这么几个索引,索引就是数据库,后面是这个数据库 ...

  4. mysql创建数据库命令

    CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  5. Python之拆分目录

    成分目录的好习惯,使得代码保持整洁,为以后的代码管理提供方便. 一.概念 一般目录有以下几个: bin:程序入口,存放start文件. conf:存放固定的配置信息,比如:连接redis的配置信息.连 ...

  6. 【学习总结】 小白CS成长之路

    2017-9-3:入坑. 理想:敲着代码唱着歌. 现实:骨感. Step 1: 认识CS: CS大体可以分成以下几个大领域:硬件.系统.软件.网络.计算理论.计算方法. 硬 件 ---- 数字电路.集 ...

  7. ubuntu使用squid搭建代理

    安装squid //检查是否安装squid which squid // apt update sudo apt install squid 配置squid的配置文件squid.conf //备份sq ...

  8. Python3练习题求1000以内所有3和5的倍数的总和

    sum = 0 for i in range(1,1000):     if i%3 == 0 or i%5 == 0:         sum += i print(sum)

  9. rem移动端适配方案

    一. rem vs em 单位 定义 特点 rem font size of the root element 以根元素字体大小为基准 em font size of the element 以父元素 ...

  10. mybatis出现NoSuchMethodException异常

    今天在idea中调试项目(ssm搭建的项目)的时候,mybatis突然出现了NoSuchMethodException异常,具体的异常时: java.lang.NoSuchMethodExceptio ...