Struts简单笔记

合集下载

Struts笔记

Struts笔记

Struts2Struts2 (1)1 1、环境搭建 (2)2 2、Struts中的action (2)2.1 2.1、访问不同的方法 (3)2.2 2.2、一些常量的配置 (4)2.3 2.4、参数的传递 (4)3 3、OGNL (5)3.1 3.1、OGNL基础 (5)3.2 3.2、ValueStack (7)3.3 3.3、Struts2的常用标签 (8)4 4、Struts2的其他知识 (9)4.1 4.1、ModelDriven (9)4.2 4.2、类型转换 (9)4.3 4.3、文件上传 (11)4.4 4.4、拦截器 (11)4.5 4.5、国际化(I18N) (13)4.6 4.6、struts2的常用标签 (14)1 1、环境搭建1、导入相应的jar包(可以参考blank项目)2、设置web.xml开启struts2的过滤器4、编写struts.xml文件(在类路径中创建struts.xml)特别注意以上的extends中的值应该是struts-default。

2 2、Struts中的actionStruts2中的Action是一个纯java对象默认的action会执行execute方法2.1 2.1、访问不同的方法1、可以为action设置多个method,之后在struts.xml文件中配置这些action所对应的方法2、只是写一个action,通过一些特殊的方法来进行访问以上操作问题是:需要为不同的方法设定不同的返回值。

这个名称不好统一3、使用通配符的方式在开发中一般都使用通配符的方式(这样可以大大减少action的配置)2.2 2.2、一些常量的配置可以通过<constant>标签来设置一些常量的配置,这些常量可以通过struts的jar包来查询2.3 2.4、参数的传递1、对于servlet而言传递参数是通过request或session等Servlet作用域进行传递的2、对于struts2而言,传递参数非常简单方式一3、3方式二方式三(使用Servlet API)一般不推荐使用3、在action中接受参数只要定义相应的属性,会自动完成传值。

Struts1学习笔记总结

Struts1学习笔记总结
1设定config参数的作用是设定strutsconfigxml包括了所有的struts的相关请求转发及一些资源设定的文档来源
Struts1学习笔记总结
Struts1 (1)
Struts1和Servlet的关系 (1)
创建第一个Struts1项目 (1)
例子1: (3)
总结重点:struts1的工作流程(基于MVC模式的) (7)
ActionForm和VO的区别:
一样的内容,不一样的作用
ActionForm只接收前台表单传来的数据
VO是conga后台提取的数据向前台传递
创建第一个Struts1项目
新建一个web项目,选择1.4即可
右键----MyEclipse----Add Struts Capacity
---------------Struts控制文件的路径
一.普通的Servlet的工作流程 (7)
二.Structs1的工作流程(和上面的对比记忆) (8)StFra bibliotekuts标签 (9)
Bean标签 (9)
html标签 (10)
logic标签(逻辑标记) (12)
i18n(国际化) (13)
Struts1
Struts1和Servlet的关系
Jsp+Servlet+Javabean
TLD(标签)
1)
2):显示信息
3):逻辑标签
struts-config.xml

Struts笔记

Struts笔记

Struts概念4、struts是一个开源的框架1、为什么有Struts?2、Struts的好处为什么是Web层框架Struts原理手写一个Struts//定义属性【这里有一个规范:就是我们定义属性的时候,//应该和jsp页面的控件属性一样。

如果有人提出疑问:说表单的属性名是不是一定和控件名一样?//只要保证set 和get 方法与属性名存在关联】4.Action5.Filter处理中文乱码public class MyFilter1 extends HttpServlet implements Filter {public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {// TODO Auto-generated method stubarg0.setCharacterEncoding("utf-8");//设置接受的编码arg2.doFilter(arg0, arg1);//}public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub}}<!-- 配置过滤器 --><filter><filter-name>MyFilter1</filter-name><filter-class>com.mhy.filters.MyFilter1</filter-class> </filter><filter-mapping><filter-name>MyFilter1</filter-name><url-pattern>/*</url-pattern></filter-mapping>使用工具开发struts完全使用工具开发5.创建表单截图创建ActionMysqlJava EE 中三种标签标签的选择Struts jstl标签技术为什么有?Jstl标签的好处常用标签引入标签<% taglib %>Java EE 5 Libraries->jstl-1.2.jar->META-INF->c.tld案例讲解c标签c:out标签<%//这句话本应放在控制器中//如果我们的域对象中有相同的属性名,c:out 优先级是pageContext>request>session>applicationrequest.setAttribute("abc","你好1<a href=''>百度</a>") ;//session.setAttribute("abc","你好2") ;//application.setAttribute("abc","你好3") ;//pageContext.setAttribute("abc","你好4") ;User u=new User();u.setName("马海燕");u.setAge(30);request.setAttribute("user",u);%><c:out value="hello world"></c:out><h1>如何输出request/session/application/pageContext域对象的数据</h1><!-- escapeXml 用于指定按照html样式显示,默认为true【表示文本】false【html样式】 --><c:out value="${abc}" default="没有值" escapeXml="false"></c:out><h1>如何输出对象</h1><c:out value="${}"></c:out> ||<c:out value="${user.age}"></c:out><br/>${} @@ ${user.age*20}c:set 标签<body><c:set var="abc" value="你好!" scope="request"></c:set><%//上面的标签等价于//request.setAttribute("abc","你好!");%><c:out value="${abc}"></c:out></body>c:remove<body><%request.setAttribute("a","你好!中国。

struts1学习笔记

struts1学习笔记

struts1开发学习笔记使用一个简单的例子记录struts1开发过程。

0、 描述主要功能描述:index 界面上只有两个超链接,分别可以打开录入产品界面和显示产品列表界面。

newProduct.jsp 是录入的界面,searchProduct.jsp 是查询列表的界面。

ProductAction.java 是处理逻辑的action简单描述流程图:1、 构建环境在Myeclipse 中,新建一个工程StrutsTest ,选择该工程,右键Myeclipse->add srutscapapibality ,弹出界面,选择struts1.2支持。

如下图所示:添加完struts 支持后,lib 目录下会增添struts 的jar 包、增添struts 的配置文件:/WEB-INF/struts-config.xml 、同时在web.xml 中增添了struts 的配置。

2、 代码编写2)创建工具类Util.java,从数据库连接池中获得连接。

需要两个步骤第一步:在WebRoot/META-INF/下新建一个context文件,通过jndi方式配置数据源,第二步:在util类中读取配置获得连接,util.java如下:3)创建工具类EncodingFilter.java,自定义过滤器,并在web.xml中配置,参考web.xml配置中内容。

EncodingFilter.java的内容如下:4)修改web.xml,指定首页为index.jsp。

文件内容如下:最后定义了一个fileld 的过滤器,是用来过滤字符编码的,后面会提到。

6)index.jsp中提到productAction.action?method=viewAddForm,需要在在配置文件中配置了action的实现类,以及作为上传数据时用来保存数据的form:productForm10)searchProduct.jsp是查询结果界面,代码如下:http://localhost:8080/StrutsTest即可访问。

struts2学习笔记(部分)

struts2学习笔记(部分)

1、namespaece(最好用模块的名字命名)Namespace 为空时,用于处理其他package不能处理的全部的action2、Package 用于区分重名的情况3、copy项目的方法及注意事项修改它的启动项引入别人的项目的方法4、action4`1修改文件的默认编码4`2每次访问action都重新new出一个新的对象,不存在同步的问题执行过程4`3Action 继承ActionSupport5、路径:获取系统绝对路径<% String context = request.getContextPath(); %><%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>使用绝对路径6、ActionMethod动态调用方法7、ActionWildcard通配符使用通配符,将配置量减到最低约定优于配置8、数值传递ActionAttrParamInputDomainModelDrivenModel过程9、中文问题 2.1.6.的bug不能解决中文问题10、11、value stack值栈< s:property value=“Name”/>取值栈中的数值如:< s:property value=“error”/>< s:property value=“[0]Propertyvalue是一个map,name就是key name is error 就是value 13、访问页面元素访问Stack Context中的元素14、include,模块包含15、认Action (好处:访问不存在时自动跳转带默认页)Default-action-ref默认action引用16、result类型1)默认是dispatcher 常用服务器端跳转2)Rdiect 只能是视图不能是action 客户端跳转,最后显示jsp3)Chain ---forwordaction action前不可以加”/”action之间的跳转,最后显示action4)RedirectAction action跳转,最后显示jsp服务器断的跳转:17、Global_ResultExtends =“要继承的包名“Result name属性:18、取value stack中的值动态绑定的。

[计算机软件及应用]struts笔记

[计算机软件及应用]struts笔记

Struts学习笔记xml描述数据本身xsl修饰xmlDOMSAXstup 通过协议骨架远程对象典型的proxy代理struts:学j2ee应该朝domain model,FrameWork,Parttern,架构模式方向发展,才能深入了解掌握。

一、Domain Model领域模型:是对现实世界的对象模型是从现实世界抽取出来的一般是先把领域模型设计出来DDD领域驱动设计不像以前,上来先设计数据库,数据库是面向关系的,而java是面向对象的,先面向关系再面向对象,有点别扭ORM自动的把实例类自动转换成数据表实体对象概念,user就是实体概念,有标识值对象概念,属于实体对象的一部分,不是跟数据库的对应二、Parttern模式遇到什么事情用什么方案解决?1、设计模式,GOF设计模式,对象思维,就是把现实中的实体抽象成对象工厂,策略,代理很重要,掌握了设计模式,就有了对象的概念2、架构模式MVC架构模式3、分析模式RBAC(Roles Base Access Control)基于角色的访问控制,对权限设计的处理模型who谁用这些权限what针对哪些资源设计权限how授权给谁,怎么样授权三、FrameWork 框架框架不是一个成熟的产品,是个半成品,struts spring是给开发人员用的,是基础性的服务,就是提供基础组件,封装的是基础性的服务,才可以在各个行业通用。

是大师级的人物写出来的框架,如果我们不用框架,自己就得先写框架,然后再开发具体业务,那就太费时,用框架,我们就只考虑具体业务设计开发,struts就是一个mvc框架。

领域模型对象表现层-业务层-持久层struts spring hibernate以前:jsp -实体bean现在:jsp -采用DTO 或者VO宜于扩展:OCP,只增加相应的实现类,不用修改以前的类两层的一般是:C/S以前大量的存储都用存储过程,不适合跨平台思想B/S:呈现层,业务层,持久层,数据库层可以把界面交给界面组做业务层交给业务开发做数据库交给数据库开发做分层好处,jsp就是显示用的,不参与业务实现,javabean实现业务,分层可以复用,客户端可以是pc,也可以是手机,只是前端采用不同的html,wml实现,业务层不变JDO有收费的也有开源的,但是开源的不太好hibernate 是开源的,用的比较多springstruts 我们用struts1.2是非常经典的mvc框架webwork分析struts的源代码,深入了解mvc在javaProject下建struts目录切换 workspace 到struts建一个test_servlet项目servlet特性:前面必须有“/”<url-pattern>/servlet/TestServlet</url-pattern><url-pattern>/TestServlet</url-pattern><url-pattern>*.action</url-pattern>敲任意字符.action,如果有*了前面不用加“/”<url-pattern>*.do</url-pattern>敲任意字符.do,如果有*了前面不用加“/”<url-pattern>/servlet/*</url-pattern>servlet/后面跟什么都可以访问servlet充当一个控制的角色,mvc中的c角色配置成*.do,通过request.getRequestURI判断请求的user.do,item.do,与配置文件里配置的参数比较,通过策略模式,派发到相应的servlet类(UserServlet,ItemServlet)servlet根据请求转到对应的manager类处理,然后转到实体类,dao层统称为model层,处理的结果转到jsp页面显示MVC:jsp 充当一个显示的界面mvc中的V(view)servlet mvc中的C(control)业务逻辑层 mvc中的M(Model)structs就是实现mvc面向请求的驱动Struts1.x struts2.x webwork面向事件的驱动M2就是MVC模式drp采用的是M1,业务逻辑和表示逻辑混合,jsp充当的角色太重,不适合多于10人开发M2适合大型项目开发,MVC,jsp(v)+servlet(c)+model(m)分层的概念servlet:接受业务参数,调用model层完成操作,然后转到jsp显示结果UserManager就是一个模型,如果UserManager封装的好哪怕改成swing也可以照用,那样才体现分层的思想实体类:贫血模型,vo,pojo设置模型:UserManager就是模型层的概念,增删改查最主要区别:M1没有分层M2是细粒度分层M1适合小型项目开发M2适合大型项目开发M model ,业务逻辑view jsp,显示层,呈现层UI Layercontroller servletswing:也是分层概念,mvc观察者模式tree,model通过浏览器访问某一个servlet接受参数,把参数组织打包,形成用户对象,调用model层处理完成后,返回给servlet层,servlet传递给jsp视图层,返回给浏览器,那样用户可以看到结果。

struts笔记

ActionForm编程:为Form表单里面的每一个字段创建getter/setter方法。

此外还有一个validate方法用于验证表单数据的格式等的正确性,reset方法用于将数据还原默认值。

V alidate方法返回的是ActionErrors对象,如果返回的是null,或者不包含任何ActionMessage 对象,表示没有错误,验证通过。

如果ActionErrors中包含ActionMessage对象,表示验证错误。

如:errors.add(“…”,new ActionMessage(“…”))配置ActionForm<form-bean name=”” type=”” /><action path=”” type=””scope=”request/session” name=”必须是前面定义过的formbean名”validate=”true/false” input=””><forward name=”” path=”” /><forward name=”” path=”” /></action>访问ActionForm(1)使用struts的HTML标签库<html:form>标签可以和ActionForm交互,读取ActionForm的属性值,把它们赋值给表单中对应的字段。

12章(2)从request或session范围内取出ActionForm实例struts把ActionForm实例保存在HttpServletRequest或HttpSession中,保存时采用的属性key 为<form-bean>元素的name属性。

(3)在Action类的execute()方法中直接访问ActionForm动态ActionForm由于Form的变动,ActionForm也要跟着变动,使得开发变得紧耦合,因此提出动态ActionForm的概念。

struts2学习笔记

1.包头的设置name是struts的包,与Java的包名效果类似,但不是按项目中SRC中包名设置的。

namescape是该包的命名空间。

将作为访问该报Action的路径的一部分。

默认命名空间为namescape=””;假设form 表单提交给helloworld的action ,其action=”/test/helloworld”exctends是表示该包继承的其他包struts_default是任何包都必须继承的包。

否则无法使用struts的核心功能,比如参数上传到action,文件上传,数据校验等。

abstract=”true”定义为抽象包,不得包含Action。

2.action的查找顺序(1)寻找namespace为path1/path2/path3/的包,有这个包:寻找test的Action有这个action:执行没有这个action:寻找namespace为””的命名空间(默认命名空间)是否有这action,没有的话提示找不到action没有这个包:寻找namespace为path1/path2/的包重复(1)步骤。

3.action的默认属性4.Action中各种result的转发类型dispatcher(默认类型)redirect(重定向)redirectAction (重定向到新的Action)plainText (显示原始文件内容)result转发还可包含参数,该参数取自Action中的属性。

例:<action name=”login” class=”xxxx.xxx.xxx.sdsds”><result name=”sucess”> /aaa.jsp?username=${ssss}</result></action>其中ssss是login这个Action中所必须具有的属性redirect书写格式1.<result name=”sucess” type=”redirectAction”>login</result>该写法只能访问位于同一包中的Action;2. <result name=”sucess” type=”redirectAction”><parma name=”actionname”>login</parama><parma name=”namespace”>/xxxxx</parama></result>该写法可访问位于其他包的ActionplainText书写格式1.<result type=”plainText”>/login.jsp</result>2. <result type=” plainText”><parma name=”location”>/login.jsp</parama><parma name=”charSet”>UTF-8</parama></result>全局转发只能在包内定义全局转发。

Struts1_个人整理笔记

目标:熟练运用当前流行的java开源框架:Struts、Hibernate以及Spring来构建灵活、易于扩展的多层Web应用程序。

C/S:以数据库为中心B/S:多层架构才是真正的目的B/S多层架构将显示、业务运算、数据库等功能完全分离,杜绝彼此的耦合与影响,从而实现松耦合和良好的可维护性。

✧呈现层(UI Layer/Presentation Layer)⏹Struts✧业务逻辑层(Business Layer)⏹Spring✧持久化层(Persistence Layer)⏹HibernateC/S两层模式,每个客户端需要安装软件,但C/S做的界面灵活性比较好。

何谓两层模式,因为很多业务逻辑都放到了前端(界面里都混了很多业务逻辑),另一方面数据库里有很多存储过程或触发器。

业务逻辑都用存储过程来实现,这是一个弊端Java就不会把业务逻辑放在存储过程里,一般将业务逻辑封装在中间件(java)中。

当然java 有时也会将业务逻辑放在存储过程里,这是从性能上来考虑,因为放在存储过程里,性能肯定会高一些。

B/S 三层模式,客户端通过浏览器来访问,不需要安装软件。

分层就来了,分层带来的影响就是粒度变细了,耦合度变低,复用度就提高了,扩展性能也好了,维护性也好了。

切换工作区间 file-switch Workspace WebRoot-New-other select a wizard MyEclipse-web-JSP(Basic templates)基本模板在Servlet中拿jsp页面的值,使用getParamter()在jsp页面中拿servlet值,使用getAttribute()当在web客户端发送请求时(点击submit),将请求传到web server(tomcat),tomcat负责找到你要请求的servlet(此处为TestServlet),此时servlet做什么呢,首先String userName = req.getParameter("userName");得到表单数据(通过http Request),然后UserManager userManager = new UserManager();调用业务逻辑,当然,业务逻辑方法将表单的值返回給servlet,返回查询结果后,servlet将结果设置到Request里面req.setAttribute("otherList", userList); 把userList设置到属性中,下一个页面才拿得到,接下来servlet会选择视图,将查询结果显示出来。

Struts2第一天课堂笔记

一、框架概述1、框架的意义与作用:所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面。

特点:封装了很多细节,程序员在使用的时候会非常简单。

2、三大框架:Struts2,Hibernate,Spring3、学好框架:由于框架中细节很多,知识点比较零散,课后总结和做好笔记就变得尤为重要。

二、关于三层架构三、控制器:MVC中的控制器1、MVC回顾M:Model 模型,封装数据。

javabeanV:view 视图,展示界面。

jspC:Controller 控制器,控制程序流程。

Servlet2、Servlet和FilterServlet:Filter:总结:Servlet能做的事情,过滤器也可以做到。

并且过滤器比Servlet还多了一个放行的功能,因此过滤器比Servlet功能更为强大。

结论就是:过滤器同样也适合做控制器。

四、案例中的问题规律:1、获取请求正文,用户要做什么事情2、根据不同的请求,做出不同的判断3、执行具体的方法代码(动作)4、转向页面,展示给用户缺陷:1、重复性劳动太多,具体的执行代码也有冗余代码。

2、到底要做什么全是硬编码,像用户要做什么事情,对应执行什么代码,可以写在配置文件中。

3、具体的代码方法放到了控制器中,过于臃肿。

五、Struts2简介1、Struts2概述Struts2是Apache发行的MVC开源框架。

注意:它只是表现层(MVC)框架。

2、Struts2的来历Struts1:也是apache开发的一套mvc的开源框架。

在2005年之前非常流行。

弊端:Struts1的核心控制器就是一个Servlet。

随着使用者的增多,弊端开始出现。

Struts2:在long long ago,有一个设计超前的框架XWork,后来推出了XWork1和WebWork2。

Struts2就是apache和OpenSymphony 组织合并开发出来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014/11/24c/s 客户端服务器 b/s浏览器服务器 url地址定位tomcat web容器用于发布项目Jsp包含内容:小脚本表达式声明 page指令Jsp运行流程:请求发送到Web容器,如果是第一次请求,容器进行编译、运行,把结果进行html拼接,发送回客户端。

Jsp内置对象:out、request、response、session、application、config、page、pageContextRequest 对象方法:getParameter(String name),getParameterValues(String name),setCharacterEncoding(),RequestDispatcher get RequestDispatcher(string path), setAttribute(Stringkey,Object value),getAttribute(String key)Get提交的内容有大小限制、post没有限制Get能看到提交信息 post不能Get是显式显示 post是隐式显示Get方式的字符编码:String name=request.getParameter(“name”);name=new String(name.getBytes(“ISO-8859-1”),”utf-8”)request 处理客户端请求 response 响应客户端请求并向客户端输出信息一个会话是浏览器与服务器之间的一次对话,从浏览器打开网页开始,到关闭浏览器结束;session对象可以用来跟踪用户在一个会话过程中的状态;session对象存储在服务器。

Session对象的常用方法:Void setAttribute(Sting key,Object value)Object getAttribute(Sting key)Void invalidate()String getId()Void removeAttribute(Sting key)Page request session application的区别:简单说 page指当前页面。

在一个jsp页面里有效request 指从http请求到服务器处理结束,返回响应的整个过程。

在这个过程中使用forward方式跳转多个jsp。

在这些页面里你都可以使用这个变量。

Session 有效范围当前会话,从浏览器打开到浏览器关闭这个过程。

application它的有效范围是整个应用。

作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用page里的变量没法从index.jsp传递到test.jsp。

只要页面跳转了,它们就不见了。

request里的变量可以跨越forward前后的两页。

但是只要刷新页面,它们就重新计算了。

session和application里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。

application里的变量一直在累加,除非你重启tomcat,否则它会一直变大。

cookie 和session 的区别:cookie数据存放在客户的浏览器上,session数据放在服务器上。

cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

session会在一定时间内保存在服务器上。

当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

所以个人建议:将登陆信息等重要信息存放为SESSION其他信息如果需要保留,可以放在COOKIE中Oracle:字符数据类型: char 存储固定长度的字符串Varchar 存储可变长度的字符串数值数据类型: number 存储整数和浮点数,格式为number(p,s)日期时间类型:date 存储日期和时间数据 timestamp:秒值精确到小数点后6位如:date 2014-8-8 timestamp 2014-8-8 06:30:55。

Lob数据类型:blob 存储二进制对象 clob 存储字符格式的大型对象 bfile 将二进制数据存储操作系统文件中约束检查:Length(student_pwd)>6 instr(email,@)>02014/12/1接口ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高。

LinkedList 采用链表存储方式,插入、删除元素时效率比较高。

List 方法:Boolean add(Object o)Void add(int index,Object o)Int size()Object get(int index)Boolean contains(Object o)Boolean remove(Object o)Object remove(int index)LinkedList 方法:Void addFirst()Map方法:Object put (Object key,object value)2014/12/2JDBC:DriverManager:依据数据库的不同,管理JDBC驱动Connection:负责连接数据库并担任传送数据的任务Statement:由Connection产生、负责执行SQL语句ResultSet:负责保存Statement执行后所产生的查询结果ResultSet ExcuteQuery(String sql)Int excuteUpdate(String sql)Boolean excute(String sql)2014/12/3防止SQL注入:PreparedStatement ps=null;Ps=conn.prepareStatement(sql);Ps.setString(1,value);Rs=ps.excuteQuery();第一步:建实体类定义属性,生成 getter、setter 方法第二部: DAO 数据访问层建立接口,接口中定义数据访问方法,定义接口的类,继承接口,在类中实现方法,new一个实体类第三部:BIZ 业务处理层建立接口和类,接口中定义业务处理方法,类中实现方法,并调用DAO。

New一个DAO类的方法。

传统数据库的不足:需要经常与数据库建立连接在访问结束后,必须关闭和释放连接数据库连接时,要频繁的建立和释放连接,浪费系统资源和时间安全性和稳定性较差CREATE SEQUENCE NeMINVALUE1MAXVALUE9999START WITH1INCREMENT BY1NOCACHE;分页显示:1、查询全部数据,只访问一次数据库2、一次取固定的数目,缺点:操作数据库频繁。

列表显示数据特点:优势:指定格式显示,布局清晰不受信息数量限制缺点:数据库查询压力大,阅读不方便分页显示步骤:1、确定每页显示的数据量和总数量2、确定分页显示的总页3、编写sql查询,实现数据查询4、在jsp进行页面分页显示intPage=(count%pageSize==0)?( count/pageSize):( count/pageSize+1)Select count(1) from table 比Select count(*) from table 效率高分页语句:Select * from(Select rownum as rn,t.*from(select news.* from news order by create_date desc) twhere rownum<=20) where rn>10;BaseDao{Connection conn(){}}2014/12/10 上传下载2014/12/12 ServletJsp 转译为 servlet,然后编译成 class文件,执行返回 htmlServlet 是运行在服务器上处理请求并对其做出响应的应用程序创建接口,定义方法,创建impl类来实现接口方法2014/12/13Servlet 类型:基础servlet、filter servlet、listener servlet转发和重定向中“ /”的意义不同:1 :共享数据转发能共享数据,重定向不能共享2:转发的url不变,重定向的url发生变化3:重定向“ /”到端口位置转发“ /”到web应用程序Request.getRequestDispatcher().forward() 返回一个RequestDispatcher对象2014/12/15El表达式特点:使用简单,自动转换类型隐式对象从小到大:pageScope requestScope sessionScope applicationScope Request返回的对象是 Object类型El表达式:“.”访问符找不到对象报错,【】找不到对象返回null paramValues2014/12/16什么是preparedStatement 预编译练习连接数据库的过程数据库是磁盘上存储数据的集合:物理上表现为数据文件、日志文件、控制文件逻辑上表现为:表空间必须首先创建数据库,才能使用数据库实例:每个启动的数据库对应一个数据库实例,由这个实例来控制和访问数据库为了运行数据库,Oracle系统所运行的所有进程和分配的内存结构的组合体数据文件:扩展名是.dbf 用于存储数据库数据的文件数据库表和数据文件不存在一对一控制文件:扩展名是.c t l,是数据库启动和运行所必须的文件日志文件:扩展名是.log,它记录了对数据的所有更改信息,多个日志文件组之间循环使用DDL:数据库定义语言DCL:数据库控制语言DML:数据库管理语言创建表空间:CREATE TABLESPACE epet_tablespaceDATAFILE'E:\oracle\product\10.2.0\oradata\JBITDB\EPET.DBF'SIZE100MAUTOEXTEND ON NEXT32M MAXSIZE UNLIMITEDLOGGINGEXTENT MANAGEMENT LOCALSEGMENT SPACE MANAGEMENT AUTO;Class.forName(“oracle:Jdbc: driver:OacleDriver”)Conn=DriverManager.getConnection(url,”user””password”)url=”jdbc;orcle:thin:@localhost:1521:orcl”;stmt=conn.createStatement();stmt.excuteUpdate(); stmt.excuteQuery();Class.forName(“orcle.jdbc.driver.OracleDriver”)Try{Class.forName(“oracle.jdbc.driver.OracleDriver”);url=”jdbc:oracle:thin:@localhost:1521:orcl”;Conn=DriverManager.getConnection(“url”,”user”,”password”);Stmt=conn.createStatement();Stmt.excuteUpdate();Stmt.excuteQuery();}catch(Exception e){e.printStackTrace();}创建序列:create sequence seq_name [start with num][increment by num] 删除序列:drop sequence seq_name;Sql *plus isql*plus pl/sql2014/12/17索引:按存储结构分:B树索引,位图索引,反向键索引按索引值是否唯一:唯一索引,非唯一索引按索引列分类:单列索引,组合索引,基于函数的索引创建索引:create index index_name on tableexp导出数据:文件为dmp文件,三种导出方式:1、表方式导出一个表2、用户方式导出属于一个用户的所有对象3、全数据库方式导出数据库所有对象,只有dba可以做导入 imp2014/12/18PL/SQL 编程:PL/SQL :一种过程化语言,通过增加编程语言的特点,实现对SQL的扩展。

相关文档
最新文档