struts2

Hibernate Spring

核能气质少年 提交于 2020-03-17 23:00:48
原理: 1. 读取并解析配置文件 2. 读取并解析映射信息,创建SessionFactory 3. 打开Sesssion 4. 创建事务Transation 5. 持久化操作 6. 提交事务 7. 关闭Session 8. 关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作

struts2使用ServletAPI笔记

我的梦境 提交于 2020-03-17 10:58:57
ServletAPI 在struts2的开发中,依然需要使用到servlet的api,比如:用户的登录后需要将用户信息保存到session中。在struts2中有两种方式可以获取servlet的api,一种是解耦方式,一种是耦合方式。 解耦方式 web.xml <!-- struts2的前端控制器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> 配置文件 <struts> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="com.x.action.LoginAction" method="login"> <result name="success">/success.jsp<

Java的SSH框架整合

女生的网名这么多〃 提交于 2020-03-16 21:47:09
写了好多篇的Android代码了,在写几篇关于Java的,博客园里肯定都是java的前辈啊,写的不好多给意见。 SSH,什么是SSH呢,Struts+Spring+Hibernate,这三个就是整个的SSH了。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。 , Jar包的链接:链接:http://pan.baidu.com/s/1gfv7EYB 密码:qrpf 如果链接失效了,发我的邮箱,我给你们发送dingchao7323@qq.com 需要的Jar包: 首先看配置applicationContext.xml的代码

struts1与struts2的区别

空扰寡人 提交于 2020-03-16 17:33:59
1) 两个框架都是MVC的WEB框架, 2) struts1是老牌框架,应用很广泛,有很好的群众基础,使用它开发风险很小,成本低,Struts2核心设计思想主要源自Webwork,实现更优雅,更容易扩展 3) Struts2修改和完善了struts1中的一些缺陷,struts1中一些悬而未决问题在struts2得到了解决。 4) struts1的前端控制器是一个Servlet,名称为ActionServlet,struts2的前端控制器是一个filter,在struts2.0中叫FilterDispatcher,在struts2.1中叫StrutsPrepareAndExecuteFilter。 5) struts1的action需要继承Action类,struts2的action可以不继承任何类;struts1对同一个路径的所有请求共享一个Action实例,struts2对同一个路径的每个请求分别使用一个独立Action实例对象,所有对于struts2的Action不用考虑线程安全问题。 6) 在struts1中使用formbean封装请求参数,在struts2中直接使用action的属性来封装请求参数。 7) struts1中的多个业务方法放在一个Action中时(即继承DispatchAction时),要么都校验,要么都不校验;对于struts2,可以指定只对某个方法进行校验

struts开发

本秂侑毒 提交于 2020-03-16 05:26:47
今天把struts 1.3.8 (建议下载struts-1.3.8-all)下载了下来,调试了网上很常见的一个登陆程序,感觉和昨天看的jsp2.0有很多相似之处。 这是我关于这个例子的流程或结构图: struts-config.xml控制着整个流程的流转 AdminLoginForm负责数据的保存和传递 AdminLoginAction负责业务逻辑的处理 现在把测试的过程列出来: 1、程序运行环境: Tomcat 5.5.25 Oracle 10g struts1.3.8 2、数据准备: 建立数据库:testperson,用于存储登陆用到的用户名、密码 create table testperson( name char(20), password char(20) ); insert into testperson values('admin','admin') 3、在Tomcat中新建一个虚拟目录: 在%TOMCAT_HOME%\conf\Catalina\localhost目录下新建一个文件:strutstest.xml 文件内容: <context path="/strutstest" docBase="d:/jsp/struts138" reloadable="true" crossContext="true" debug="0"></context>

struts2 拦截器

丶灬走出姿态 提交于 2020-03-15 06:42:20
拦截器 2.自定义拦截器 1>.添加一个类,让它继承AbstractInterceptor类,或者实现Interceptor接口 public class TimeInterceptor extends AbstractInterceptor { /** * 拦截器的核心方法intercept的返回值是一个字符串 */ @Override public String intercept(ActionInvocation invocation) throws Exception { // TODO Auto-generated method stub return "login"; } } 2>.在struts.xml的package中添加interceptors子节点,并在它下面添加Interceptor节点 <package name="goods" namespace="/goods" extends="common-pkg"> <interceptors> <interceptor name="timeInterceptor" class="com.wskj.struts2.interceptor.TimeInterceptor"></interceptor> </interceptors> </package> 3>

SSH的框架整合

£可爱£侵袭症+ 提交于 2020-03-13 12:44:01
struts 控制用的 hibernate 操作数据库的 spring 用解耦的 第一步:先创建一个wed项目 。 第二步:配置struts2 1.添加Struts2所需要的基本jar包到 lib目录下 包名如下图: 2.在web.xml 文件里添加struts的过滤器配置如下:《提示:struts2-2.3版本》 <?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.html</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name>

Struts2理解--动态方法和method属性及通配符_默认Action

依然范特西╮ 提交于 2020-03-12 07:03:29
众所周知,默认条件下,在浏览器输入indexAction!execute.action,便会执行indexAction类里的execute方法,这样虽然方便,但可能带来安全隐患,通过url可以执行Action中的任意方法。 想要禁止调用动态方法,则要在struts.xml中通过constant元素将属性strutsenableDynamicMethodInvocation设置为false,来禁止调用动态方法。 <constant name="strutsenableDynamicMethodInvocation" value="false"/> method属性: 这时我们需要通过其他安全的方式来实现动态方法的调用 一、通过action元素的method属性来指定Action执行时调用的方法 <action name= "empAction_register" class= "com.syaccp.erp.action.emp.EmpAction" method= "register" > <result name= "success" > /WEB-INF/jsp/basic/emp_list.jsp </result> <result name= "input_edit" > /WEB-INF/jsp/basic/emp_edit.jsp </result> <result

Struts自定义拦截器

被刻印的时光 ゝ 提交于 2020-03-11 17:59:54
首先我们来以一个权限拦截器 的例子来说明自定义拦截器,登录之后才可以访问action中的方法,没有登录的话提示用户登录 首先建立一个设置登录状态的jsp login.jsp <%request.getSession().setAttribute("user","dbq_00");%> 建立一个退出登录状态的jsp quit.jsp <%request.getSession.removeAttribute("user");%> 现在来建立action package com.day05; public class demo { private String message; public String getMessage() { return message; } public void setMessage(String messsage) { this.message = messsage; } public String addUI(){ this.message = "addUI()"; return "success"; } public String execute(){ this.message = "execute()"; return "success"; } } 在action中配置 <package name="day05" namespace="/day05

struts2中的路径问题

﹥>﹥吖頭↗ 提交于 2020-03-11 14:31:58
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> < %@taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!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> <base href="<%=basePath%>" /> <meta http-equiv="Content-Type" content="text/html; charset