j2ee学习笔记

Servlet:html

①字符集问题:
②身份验证:
③统一的输入输出:相似母版,重写ServletResponeceWraper的getWriter,使用缓存流。
而后输出时,分析stringWriter ,重构html结构。
缘由:以前的方式存在两个问题:
①目录结构混乱
②程序可能将printwriter关闭,致使下边的输出中止。
前端

解决方法:filter 过滤器
特色:
①过滤方向是双向的
②request和response,chaine
③配置web.xml
④默认只过滤client的请求
<dispatcher>request</dispatcher> 默认状态
<dispatcher>forward</dispatcher>内部转发也过滤
<dispatcher>include</dispatcher>

修饰模式(装配模式)
实现接口,成员为其实现类的对象,增长其余数据。
①ServletResponeceWraper就是这样一个类,
②咱们继承其类,便可完成。java


listener
===监听生命周期的事件==
建立:*Init ①服务器启动时,加载公用数据。
销毁:*Destroy web

=============================
ServletContextListener
HttpSessionListener :购物车collection<Product>;
ServletRequestListener
=============================
ServletContextAtrributeListener
HttpSessionAtrributeListener
ServletRequestAtrributeListener
=============================spring

JSP与Servlet的对比:
①实质都是Servlet,应用服务器将其翻译,转换成java,而后使用。tomcat/work/catalina/...
②servlet更适合业务处理,jsp更适合视图,即显示数据express

 

JSP:
1、语法:
①.jsp的后缀
②存在位置:webapps下,web-inf外的路径下
③直接访问,无须web.xml配置
④当jsp首次访问时,服务器将jsp翻译成java文件,而后javac成执行文件apache

2、元素:
1>脚本元素:
①声明脚本 <%! 声明体%> 成员变量
②表达式脚本 <%= 表达式 %> 编译在service方法中,当局部变量与成员变量重复时,因此优先使用普通脚本中的变量。
③普通脚本 <% %> 在service方法中,变量是局部变量 能够编写除了函数声明外的任何java代码


2>指令元素:
1.页面指令:<%@page 属性="值" 属性2="值2" ...%>
对jsp页面描述说明
①contentType="text/html"
contentType="text/html;character-set"
②import 导包、类
<%@page import="java.util.*"%>
默认,已导入:java.lang.*,javax.servlet.*,javax.servlet.http.*,javax.servlet.jsp.*
③isErrorPage="true|false"
④errorPage="URI"
⑤session="true" 是否使用session,默认true
⑥language="java"
2.包含指令:
静态包含:<%@ include file="url"%> 静态包含,编译前包含缓存

3、隐含对象
不须要new,直接使用的一组对象,tomcat自动建立
只能在<%=%>、<% %>中使用。
1.request
type:HttpServletRequest
method:getParameter
setAttribute
getAttribute
getSession
getMethod
getRequestURL:全球资源定位
getRequestURI:主机资源定位
getContextPath:应用名

2.session
type:httpSession
method:setAttribute
getAttribute
removeAttribute
isNew:第一次访问true,以后是false
3.out
type:javax.servlet.jsp.jspWriter
4.exception
注意:只能在error.page中使用
5.responce:

6.application
type:javax.servlet.ServletContext
setAttribute()
getAttribute()
removeAttribute()
7.page
type:java.lang.Object
表明当前jsp对象
8.config
type:javax.servlet.servletConfig

9.pageContext
type:javax.servlet.jsp.PageContext
①获取其余8个隐含对象
pageContext.getRequest();
②做用域:表明请求中的一个页面,其做用域只是一个请求中的一个页面对象
③能够直接获取其余3个做用域中的属性:依次从小到大查找
Object o = pageContext.findAttribute();
getAttribute(name,scope)
④include|forward
4、EL表达式:express language 表达式语言
1>语法:${ name } 按照从小到大的顺序在四个做用域中查,找名字为name的命名属性
2>做用:计算表达式,且输出${param.name} == <%= request.getParameter(“name” ) %>
3>基本运算:${ empty a } :a若是为空返回true ,不然返回false
4>简化获取做用域中的命名属性:

②看成用域中存在重名变量时,能够在EL中明确指定查找的做用域:
5>做用域:pageSope/requestScope/sessionScope/applicationScope
6>若是属性是对象,可使用点语法。
7>获取Client的数据:${param.age} 等价于 request.getParameter(age);
8>获取Cookie的数据:${cookie.JSESSIONID.value}
等价于:Cookie cookies = request.getCookies();
遍历;
9>隐含对象:

5、JSTL :java standard tag library apache提供的
tomcat


4、静态包含和动态包含(相似静态库和动态库)
<%@include file=“fun.jsp”%>
静态包含指令,用于将目标文件的源代码包含到本页面中
至关于进行了一次拷贝粘贴操做,被包含的目标文件不会生成独立的servlet源码
若是被包含的多个文件中有重名的变量,会出现变量冲突服务器

<jsp:include page=“header.jsp” />
动态包含指令,用于将目标文件的输出结果和本页面合并在一块儿
被包含的目标文件独立运行,会生成独立的servlet文件
因为只是进行结果的合并,不存在变量冲突

参数传递:
动态包含参数传递:当前jsp对象向被包含对象传递参数,使用getparameter("name")获取便可
<jsp:include page=“/common/header.jsp”>
<jsp:param name=“a” value=“123”/>
<jsp:param name=“b” value=“456”/>
</jsp:include>

<jsp:forward page=“sub/b.jsp”>
<jsp:param name=“a” value=“1”/>
<jsp:param name=“b” value=“2”/>
</jsp:forward>

 

5、Java标准标签库 JSTL java standt tag libary
①引入包文件:jstl.jar 和 standard.jar

②标签做用域scope
page : pageConetxt
session : HttpSession
application : ServletContext


框架学习:

1、Hibernate框架:

2、Struts2框架:1.struts.xml<package name="user" namespace="/User" extends="struts-default"> <action name="Login"> <result>/login.jsp</result> </action> <action name="Welcome" class="com.yiibai.user.action.WelcomeUserAction"> <result name="SUCCESS">/welcome_user.jsp</result> </action> <action name="Hello"> <result>/WEB-INF/page/hello.jsp</result> </action></package>①package的namespace不写,则为默认命名空间,找不到的action都会在默认命名空间下寻找②action: name:action的名字,区分大小写,请求中能够不添加action的后缀 class:默认是"ActionSupport" method:默认是"execute" 搜索顺序: ①请求url中寻找,如未找到,跳至上一级,继续①,若是找到,则处理返回 ②若是根命名空间下还未找到,则到默认命名空间寻找 ③若是找到,则报错③result: name:默认"SUCCESS" 3、spring mvc框架1.spring mvc是spring框架的一部分,即在spring框架下的mvc的具体处理和实现2.执行过程: 1.request->dispacherServlet 2.dispacherServlet -> handlerMapping 根据注解、xml 3.handlerMapping -> dispacherServlet 返回handlerExcutionExplain(Handler) 4.dispacherSerlet -(handler)> handlerAdapter 5.handlerAdapter -> 执行handler 6.handlerAdapter —> dispacherServlet 返回ModelAndView 7.dispacherServlet -(ModelAndView)> Viewresolver 8.Viewresolver -> dispacherServlet 返回物理View 9.dispacherServlet 填充model,视图渲染,相应结果 3.组件: 1.前端控制器 DispatcherServlet (不须要开发,配置便可) 做用:Controller,接受请求,相应结果,即转发器dispacher 2.处理器映射器 HandlerMapping (不须要开发) 做用:根据请求url,根据注解、查找handler 3.处理器适配器 HandlerAdapter (不须要开发) 做用:按照特定规则,执行handler 注意:编写handler按照adapter的要求编写 4.处理器 Handler (须要按照adapter进行开发) 5.视图解析器 View resolver 做用:根据逻辑视图,解析成真正的视图 6.视图 View (jsp freemaker pdf excel)(须要开发)

相关文章
相关标签/搜索