SSH项目整合基本步骤

一、项目简介

  该项目是由Spring4、Struts2 以及 Hibernate4 整合搭建的 web 项目,把Action分开编写,便于查看,使用JSTL、EL标签。

二、项目目录

三、项目所需Jar包

  ①Spring:

  aopalliance-1.0.jar
  aspectjweaver.jar
  spring-aop-4.3.0.RELEASE.jar
  spring-aspects-4.3.0.RELEASE.jar
  spring-beans-4.3.0.RELEASE.jar
  spring-context-4.3.0.RELEASE.jar
  spring-core-4.3.0.RELEASE.jar
  spring-expression-4.3.0.RELEASE.jar
  spring-jdbc-4.3.0.RELEASE.jar
  spring-orm-4.3.0.RELEASE.jar
  spring-tx-4.3.0.RELEASE.jar
  spring-web-4.3.0.RELEASE.jar

  ②Struts2:

  asm-5.0.2.jar
  asm-commons-5.0.2.jar
  asm-tree-5.0.2.jar
  commons-fileupload-1.3.1.jar
  commons-io-2.2.jar
  commons-lang3-3.2.jar
  freemarker-2.3.19.jar
  ognl-3.0.6.jar
  struts2-core-2.3.20.jar
  struts2-spring-plugin-2.3.20.jar
  xwork-core-2.3.20.jar

  ③Hibernate:

  antlr-2.7.7.jar
  dom4j-1.6.1.jar
  hibernate-commons-annotations-4.0.5.Final.jar
  hibernate-core-4.3.11.Final.jar
  hibernate-jpa-2.1-api-1.0.0.Final.jar
  jandex-1.1.0.Final.jar
  jboss-logging-3.1.3.GA.jar
  jboss-logging-annotations-1.2.0.Beta1.jar
  jboss-transaction-api_1.2_spec-1.0.0.Final.jar

  ④C3P0:

  c3p0-0.9.5.1.jar
  mchange-commons-java-0.2.10.jar
  mysql-connector-java-5.1.8-bin.jar

  ⑤JSTL:

  taglibs-standard-compat-1.2.5.jar
  taglibs-standard-impl-1.2.5.jar
  taglibs-standard-jstlel-1.2.5.jar
  taglibs-standard-spec-1.2.5.jar

  ⑥log4j:

  log4j-1.2.17.jar

四、项目源码

1、db.properties

 db.username=root
db.password=root
db.driverClass=com.mysql.jdbc.Driver
db.jdbcUrl=jdbc:mysql://localhost:3306/ssh_01
db.initialPoolSize=2
db.maxPoolSize=20

2、log4j.properties

 # Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
# Start logging
log4j.logger.cn.com.zfc.model.UserMapper=TRACE

3、applicationContext.xml(可以把通用的配置抽取出来,便于管理)

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"> <!-- 注册数据库链接文件 -->
<context:property-placeholder location="classpath:db.properties" /> <!-- 注册C3P0 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${db.username}"></property>
<property name="password" value="${db.password}"></property>
<property name="driverClass" value="${db.driverClass}"></property>
<property name="jdbcUrl" value="${db.jdbcUrl}"></property>
<property name="initialPoolSize" value="${db.initialPoolSize}"></property>
<property name="maxPoolSize" value="${db.maxPoolSize}"></property>
</bean> <!-- 注册 LocalSessionFactoryBean,这种配置可以省略 Hibernate 的主配置文件 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 配置 hibernate 映射文件的位置及名称,可以直接写目录 -->
<property name="mappingDirectoryLocations">
<list>
<value>classpath:cn/com/zfc/ssh/entity</value>
</list>
</property>
</bean> <!-- 注册事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!-- 注册通知,是对 Service 层的方法起作用 -->
<tx:advice transaction-manager="transactionManager" id="txadvice">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="find*" read-only="true" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice> <!-- 注册切面 -->
<aop:config>
<!-- Service 层 -->
<aop:pointcut expression="execution(* *..service.*.*(..))"
id="txPoint" />
<aop:advisor advice-ref="txadvice" pointcut-ref="txPoint" />
</aop:config> <!-- 注册 User -->
<!-- Dao -->
<bean id="userDao" class="cn.com.zfc.ssh.dao.impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!-- Service -->
<bean id="userService" class="cn.com.zfc.ssh.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean> <!-- Action -->
<!-- 跳转到 User 添加的视图的Action -->
<bean id="userAddViewAction" class="cn.com.zfc.ssh.action.UserAddViewAction"></bean> <!-- User 添加的 Action -->
<bean id="userAddAction" class="cn.com.zfc.ssh.action.UserAddAction">
<property name="userService" ref="userService"></property>
</bean> <!-- User 查询全部的 Action -->
<bean id="usersFindAction" class="cn.com.zfc.ssh.action.UsersFindAction">
<property name="userService" ref="userService"></property>
</bean> <!-- User 删除的 Action -->
<bean id="userRemoveAction" class="cn.com.zfc.ssh.action.UserRemoveAction">
<property name="userService" ref="userService"></property>
</bean> <!-- 跳转到 User 修改视图的 Action -->
<bean id="userModifyViewAction" class="cn.com.zfc.ssh.action.UserModifyViewAction">
<property name="userService" ref="userService"></property>
</bean> <!-- User 修改的 Action -->
<bean id="userModifyAction" class="cn.com.zfc.ssh.action.UserModifyAction">
<property name="userService" ref="userService"></property>
</bean> </beans>

4、struts.xml

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<!-- 声明对象是由 Spring 创建的 -->
<constant name="struts.objectFactory" value="spring"></constant> <!-- 定义包,有关 User 的配置 -->
<package name="userPackage" extends="struts-default" namespace="/">
<!-- User 添加 -->
<action name="userAddViewAction" class="userAddViewAction"
method="userAddView">
<result>/user_add.jsp</result>
</action> <!-- 添加页面 -->
<action name="userAddAction" class="userAddAction" method="addUser">
<!-- 直接跳转到查询全部 User 的Action -->
<result type="redirectAction">/usersFindAction</result>
</action> <!-- Users 查询 -->
<action name="usersFindAction" class="usersFindAction" method="findUsers">
<result>/users_query.jsp</result>
</action> <!-- User 删除 -->
<action name="userRemoveAction" class="userRemoveAction"
method="removeUser">
<result type="redirectAction">/usersFindAction</result>
</action>
<!-- User 修改页面 -->
<action name="userModifyViewAction" class="userModifyViewAction"
method="modifyUserView">
<result>/user-modify.jsp</result>
</action> <!-- User 修改 -->
<action name="userModifyAction" class="userModifyAction"
method="modifyUser">
<result type="redirectAction">/usersFindAction</result>
</action> </package>
</struts>

5、web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>SSH</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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>
</web-app>

6、User.java

 package cn.com.zfc.ssh.entity;

 public class User {
private Integer id;
private String userName;
private int userAge; public User() {
super();
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public int getUserAge() {
return userAge;
} public void setUserAge(int userAge) {
this.userAge = userAge;
} @Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", userAge=" + userAge + "]";
} }

7、User.hbm.xml

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-6-9 23:41:28 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping package="cn.com.zfc.ssh.entity">
<class name="User" table="USER_INFO">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<!-- 主键生成策略 -->
<generator class="native" />
</id>
<property name="userName" type="java.lang.String">
<column name="USER_NAME" />
</property>
<property name="userAge" type="int">
<column name="USER_AGE" />
</property>
</class>
</hibernate-mapping>

8、UserDao.java

 package cn.com.zfc.ssh.dao;

 import java.util.List;

 import cn.com.zfc.ssh.entity.User;

 public interface UserDao {
void insertUser(User user); void deleteUser(int id); void updateUser(User user); User queryUserById(int id); List<User> queryUsers();
}

9、UserDaoImpl.java

 package cn.com.zfc.ssh.dao.impl;

 import java.util.List;

 import org.hibernate.SessionFactory;

 import cn.com.zfc.ssh.dao.UserDao;
import cn.com.zfc.ssh.entity.User;
/**
*
* @title UserDaoImpl
* @describe User 相关的 Dao 层操作,Session 要与当前线程绑定
* @author zfc
* @date 2017年6月10日下午3:31:49
*/
public class UserDaoImpl implements UserDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
} @Override
public void insertUser(User user) {
sessionFactory.getCurrentSession().save(user);
} @Override
public void deleteUser(int id) {
User user = (User) sessionFactory.getCurrentSession().get(User.class, id);
sessionFactory.getCurrentSession().delete(user); } @Override
public void updateUser(User user) {
sessionFactory.getCurrentSession().update(user); } @Override
public List<User> queryUsers() {
String hql = "From User";
return sessionFactory.getCurrentSession().createQuery(hql).list();
} @Override
public User queryUserById(int id) {
return (User) sessionFactory.getCurrentSession().get(User.class, id);
}
}

10、UserService.java

 package cn.com.zfc.ssh.service;

 import java.util.List;

 import cn.com.zfc.ssh.entity.User;

 public interface UserService {
void addUser(User user); void removeUser(int id); void modifyUser(User user); List<User> findUsers(); User findUserById(int id);
}

11、UserServiceImpl.java

 package cn.com.zfc.ssh.service.impl;

 import java.util.List;

 import cn.com.zfc.ssh.dao.UserDao;
import cn.com.zfc.ssh.entity.User;
import cn.com.zfc.ssh.service.UserService;
/**
*
* @title UserServiceImpl
* @describe 业务逻辑实现
* @author zfc
* @date 2017年6月11日下午8:16:50
*/
public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} @Override
public void addUser(User user) {
userDao.insertUser(user); } @Override
public void removeUser(int id) {
userDao.deleteUser(id); } @Override
public void modifyUser(User user) {
userDao.updateUser(user); } @Override
public List<User> findUsers() {
return userDao.queryUsers();
} @Override
public User findUserById(int id) {
return userDao.queryUserById(id);
} }

12、UserAddViewAction.java

 package cn.com.zfc.ssh.action;
/**
*
* @title UserAddViewAction
* @describe User 添加的视图的 Action
* @author zfc
* @date 2017年6月10日下午3:29:15
*/
public class UserAddViewAction { public String userAddView() {
return "success";
}
}

13、UserAddAction.java

 package cn.com.zfc.ssh.action;

 import cn.com.zfc.ssh.entity.User;
import cn.com.zfc.ssh.service.UserService;
/**
*
* @title UserAddAction
* @describe User 添加的Action
* @author zfc
* @date 2017年6月10日下午3:28:57
*/
public class UserAddAction { private UserService userService;
private User user; public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public void setUserService(UserService userService) {
this.userService = userService;
} public String addUser() {
// System.out.println("user:" + user);
userService.addUser(user);
return "success";
} }

14、UsersFindAction.java

 package cn.com.zfc.ssh.action;

 import java.util.List;
import java.util.Map; import org.apache.struts2.interceptor.RequestAware; import cn.com.zfc.ssh.entity.User;
import cn.com.zfc.ssh.service.UserService;
/**
*
* @title UsersFindAction
* @describe User 查询全部的 Action
* @author zfc
* @date 2017年6月10日下午3:31:07
*/
public class UsersFindAction implements RequestAware { private UserService userService;
private Map<String, Object> request; public void setUserService(UserService userService) {
this.userService = userService;
} @Override
public void setRequest(Map<String, Object> request) {
this.request = request;
} public String findUsers() {
// System.out.println("查询全部Users Action");
List<User> users = userService.findUsers();
request.put("users", users);
// System.out.println(userService.findUsers());
return "success";
} }

15、UserRemoveAction.java

 package cn.com.zfc.ssh.action;

 import cn.com.zfc.ssh.service.UserService;
/**
*
* @title UserRemoveAction
* @describe User 删除的 Action
* @author zfc
* @date 2017年6月10日下午3:30:50
*/
public class UserRemoveAction {
private Integer id; private UserService userService; public UserService getUserService() {
return userService;
} public void setUserService(UserService userService) {
this.userService = userService;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String removeUser() {
userService.removeUser(id);
return "success";
}
}

16、UserModifyViewAction.java

 package cn.com.zfc.ssh.action;

 import java.util.Map;

 import org.apache.struts2.interceptor.RequestAware;

 import cn.com.zfc.ssh.entity.User;
import cn.com.zfc.ssh.service.UserService; /**
*
* @title UserModifyViewAction
* @describe 跳转 User 修改视图的 Action
* @author zfc
* @date 2017年6月10日下午3:29:56
*/
public class UserModifyViewAction implements RequestAware { private Map<String, Object> request;
private UserService userService;
private Integer id; public void setId(Integer id) {
this.id = id;
} public void setUserService(UserService userService) {
this.userService = userService;
} @Override
public void setRequest(Map<String, Object> request) {
this.request = request;
} public String modifyUserView() {
User user = userService.findUserById(id);
// System.out.println(user);
request.put("user", user);
return "success";
} }

17、UserModifyAction.java

 package cn.com.zfc.ssh.action;
import cn.com.zfc.ssh.entity.User;
import cn.com.zfc.ssh.service.UserService;
/**
*
* @title UserModifyAction
* @describe User 修改的Action
* @author zfc
* @date 2017年6月10日下午3:29:40
*/
public class UserModifyAction { private User user;
private UserService userService; public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public UserService getUserService() {
return userService;
} public void setUserService(UserService userService) {
this.userService = userService;
} public String modifyUser() {
System.out.println(user);
userService.modifyUser(user);
return "success";
} }

18、index.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SSH_01</title>
</head>
<body>
<a href="usersFindAction">Users Query</a>
<hr />
<a href="userAddViewAction">User Add</a>
</body>
</html>

19、user_add.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户添加</title>
</head>
<body>
<form action="userAddAction" method="post">
UserName:<input type="text" name="user.userName">
<hr />
UserAge:<input type="text" name="user.userAge">
<hr />
<input type="submit" value="ADD" />
</form>
<hr />
<a href="usersFindAction">Users Query</a>
</body>
</html>

20、users_query.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户查询</title>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="1" width="50%">
<thead>
<tr>
<th>ID</th>
<th>UserName</th>
<th>UserAge</th>
<th>Operate</th>
</tr>
</thead>
<tbody>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.userName}</td>
<td>${user.userAge}</td>
<td><a href="userModifyViewAction?id=${user.id}">Update</a>&amp;<a
href="userRemoveAction?id=${user.id}">Remove</a></td>
</tr>
</c:forEach>
</tbody>
</table>
<hr />
<a href="userAddViewAction">User Add</a>
</body>
</html>

21、user_modify.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="userModifyAction" method="post">
${user}
<!-- 隐藏域,用来保存当前 User 的 id -->
<input type="hidden" name="user.id" value="${user.id}" />
<hr />
UserName:<input type="text" name="user.userName" value="${user.userName}">
<hr />
UserAge:<input type="text" name="user.userAge" value="${user.userAge}">
<hr />
<input type="submit" value="Modify" />
</form>
<hr />
<a href="usersFindAction">Users Query</a>
</body>
</html>

五、数据库

 六、程序运行效果图

SSH项目整合基本步骤的更多相关文章

  1. FreeMarker与SSH项目整合流程

    FreeMarker与SSH项目整合流程 学习了SSH之后,一般为了减少数据库的压力,会使用FreeMarker来生成静态HTML页面.下面简单说一下FreeMarker与SSH项目的整合全过程~ 前 ...

  2. spring4+hibernate4+struts2项目整合的步骤及注意事项

    首先,在整合框架之前,我们需要知道Spring框架在普通Java project和Web project中是略有不同的. 这个不同地方就在于创建IOC容器实例的方式不同,在普通java工程中,可以在m ...

  3. SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)

    这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hiberna ...

  4. SSM项目整合基本步骤

    SSM项目整合 1.基本概念 1.1.Spring Spring 是一个开源框架, Spring 是于 2003  年兴起的一个轻量级的 Java  开发框架,由 Rod Johnson  在其著作  ...

  5. SSH 项目整合

    SSH整合:spring + springmvc + hibernate 1.1 生成Maven项目:ar_ssh 1.2 添加jar包:pom.xml 与ssm相比,主要添加了spring与hibe ...

  6. SSH项目整合

    其实框架的整合无非就是jar包和配置文件: struts2.spring.Hibernate这三个框架,分清楚什么作用就好配置了. jar包我们就不说了,这里看下配置文件吧: struts.xml: ...

  7. 搭建一个SSH项目框架的步骤

    1.导入jar包(38个) 2.配置文件 applicationContext,xml (beans.xml) (数据源.LocalSessionFactoryBean.事务管理器.事务通知.AOP切 ...

  8. 使用eclipse整合ssh项目的例子--lljf(1)

    最近向自己单独做一个基于ssh的项目,来预习和巩固自己的Java基础.找了一个实际生活中的定做衣服的例子来做一做,放到博客上给大家一起分享学习,后边会持续更新项目编写时候遇到的困难和使用的技术等. 1 ...

  9. 【转载】SSH整合使用步骤

    SSH整合使用步骤 由于刚开始学习SSH,其中的配置比较多,为了下次能够快速的进行配置,将SSH整合的过程记录下来,以便下次查阅. 软件环境:MyEclipse 9.0.Struts2.2.Sprin ...

随机推荐

  1. 【CTF WEB】GCTF-2017读文件

    读文件 只给了个1.txt可以读,试了一下加*不行,感觉不是命令执行,"../"返回上级目录也不行,猜测可能过滤了什么,在1.txt中间加上"./"发现仍能读取 ...

  2. 10款常见MySQL高可用方案选型解读【转】

    我们在考虑MySQL数据库的高可用架构时,主要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断. 用作备份. ...

  3. c# CTS 基础数据类型笔记

    C#中的基础数据类型并没有内置于c#语言中,而内置于.net freamework. C#有15个预定义类型,其中13个是值类型,两个是引用类型(string和object) 一.值类型 值类型 数据 ...

  4. IIS错误:在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项

    之前的IIS配置中,.mp4类型的文件默认无法访问,所以个人在IIS7.5的mime类型中增加了.mp4的类型的支持,但问题是需要每台机器中增加这些设置,不利于团队协作,于是,只好将这些修改体现在代码 ...

  5. 使用插件实现Jenkins参数化构建

    一.插件安装 1.打开插件管理,在此界面可以安装插件 二.参数化 1.在“可选插件”中查找如下两个插件然后安装,安装后重启Jenkins Build With Parameters 输入框式的参数 P ...

  6. jmeter之数据库

    https://www.cnblogs.com/ShadowXie/p/6007515.html

  7. Fiddler 4 抓包(APP HTTPS )

    一.手机连接Fiddler 1.配置fiddler 1.安装fiddler,基本下一步下一步即可: 2.打开fiddler,点击顶部栏Tools——>Options 3.在HTTPS页签勾选“D ...

  8. No.3 selenium学习之路之鼠标&键盘事件

    鼠标事件 from selenium.webdriver.common.action_chains import ActionChains contest_click()  右击 double_cli ...

  9. 使用Netty4实现基本的消息分发

    示例工程代码 可从附件下载 具体的说明和用法在后面介绍 需求与目的 一个游戏服务端需要处理各种业务逻辑,每一种业务逻辑都对应着一个请求消息和一个响应消息.那么服务端需要把这些不同的消息自动分发到对应的 ...

  10. loaded some nib but the view outlet was not set(转载)

    当使用 initWithNibName 函数, 并使用 由nib文件生成的ViewController 的view属性时候,遇到这个问题. //load loc.xib UIViewControlle ...