JSP相关

JSP相关
一、JSP的内置对象
输入、输出对象:request,response,out;
作用域通信对象:session,application,pageContext;
Servlet对象:    page,config;
错误对象:      exception;

四个作用域(信息共享的范围)从大到小:appliaction>session>request>page
application:全局作用范围,整个应用程序共享.生命周期为:应用程序启动到停止。
session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。
request:请求作用域,就是客户端的一次请求。
page:一个JSP页面。
二、request,response,session常用方法:
1、Request
getCookies();getMethod();getRequestURI();	getSession();getAttribute();setAttribute();getParameter();setCharacterEncoding();getRequestDispatcher();
2、Response
sendRedirect();
3、Session
getAttribute();getCreationTime();getId();getLastAccessedTime();wait();invalidate();removeAttribute();
三、get和post区别
1get是从服务器上获取数据,post是向服务器传送数据;
2get传送的数据量较小,post传送的数据量较大;
3get安全性较低,post安全性较高,但是执行效率不如get;
4在进行文件上传时只能使用post;
四、JSP的两种跳转方式
1JSP的跳转方式Forward(转发)和Redirect(重定向);
2从数据共享上Forward是一个请求的延续,可以共享request的数据,Redirect开启一个新的请求,不共享request的数据;
3从地址栏Forward地址栏不发生变化,Redirect地址栏发生变化;
五、session和cookie的区别
1.session是存储在服务器端,cookie是存储在客户端的,所以安全来讲session的安全性要比cookie高,然后我们获取session里的信息是通过存放在会话cookie里的sessionid获取的。
2由于session是存放在服务器的内存中,所以session里的东西不断增加会造成服务器的负担,所以会把很重要的信息存储在session中,而把一些次要东西存储在客户端的cookie里,然后cookie确切的说分为两大类分为会话cookie和持久化cookie。
3会话cookie是存放在客户端浏览器的内存中,他的生命周期和浏览器是一致的,浏览器关了会话cookie也就消失了,然而持久化cookie是存放在客户端硬盘中,而持久化cookie的生命周期就是我们在设置cookie时候设置的那个保存时间;sessio是在服务器关闭的时候,或者是sessio过期,再或者调用了invalidate()的或者是我们想要session中的某一条数据消失调用session.removeAttribute()方法,最后session是通过调用session.getsession来创建,这就是session与cookie的区别
六、Application及统计在线人数
application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext 类的实例。
这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。

protected void Application_Start(){
    Application["OnLineUserCount"] = 0;
    AreaRegistration.RegisterAllAreas();
    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}
protected void Session_Start(object sender, EventArgs e){
    Application.Lock();
    Application["OnLineUserCount"] = Convert.ToInt32(Application["OnLineUserCount"]) + 1;
    Application.UnLock();
}
protected void Session_End(object sender, EventArgs e){
    Application.Lock();
    Application["OnLineUserCount"] = Convert.ToInt32(Application["OnLineUserCount"]) - 1;
    Application.UnLock();
}
七、servlet及 生命周期
1、Servlet是用Java编写的运行在服务器端的小程序,主要用来处理和转发请求的。
2生命周期
1>Servlet 通过调用 init () 方法进行初始化。
2>Servlet 调用 service() 方法来处理客户端的请求。
3>Servlet 通过调用 destroy() 方法终止(结束)。
4>Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
八、使用Servlet实现转发及重定向
转发:
request.getRequestDispatcher("…").forward(request, response);
重定向:
response.sendRedirect("…");
九、Servlet API的常用接口和类
接口:
Filter;RequestDispatcher;HttpServletRequest;HttpServletResponse;HttpSession;
类:
Cookie ;HttpServlet;HttpUtils;ServletInputStream;ServletOutputStream
十、jsp与servlet的关系——jsp编译运行原理;
当服务器上的一个JSP第一次请求执行时服务器上的JSP 引擎首先将JSP页面文件转译成一个JAVA文件再将这个JAVA文件编译生成字节码文件然后通过执行这个字节码文件响应客户。
十一、配置Servlet
<servlet>
     <servlet-name>ServletDemo</servlet-name>    // servlet名字
     <servlet-class>day_052102.ServletDemo</servlet-class>    // servlet实现类类名
	<load-on-startup>1</load-on-startup>    // 取值表示servlet优先级
</servlet>
 <servlet-mapping>
     <servlet-name>ServletDemo</servlet-name>    // 与servlet名字相同
     <url-pattern>/ServletDemo</url-pattern>     // servlet的关联URL
 </servlet-mapping>
十二、Servlet接收Checkbox参数
前端
<input type="checkbox" name="love" value ="阅读">阅读<br>
<input type="checkbox" name="love" value ="旅游">旅游<br>
<input type="checkbox" name="love" value ="运动">运动<br>
Servlet
String[] values = request.getParameterValues("love") ;
十三、Servlet的继承关系
 
十四、Servlet过滤器
1、filter的概述:
filter是一个过滤器,用来在请求前和响应后进行数据的处理。
2、filter的生命周期是:
实例化--->初始化(init)-->进行过滤(doFilter)--->销毁(destroy)-->释放资源
3、一个Filter必须实现javax.servlet.Filter接口
在项目中我们通常通过filter进行编码转换,进行安全验证,进行重复提交的判断。
4、配置过滤器
<filter>
		<filter-name>AuthorityFilter</filter-name>
		<filter-class>com.john.filter.AuthorityFilter</filter-class>
		<init-param>
			<param-name>exclude</param-name>
			<param-value>/login.jsp,/login,/static</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>AuthorityFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
十五、Servlet监听器
1、监听器的概述:
Listener用于监听 java web程序中的事件,当创建、修改、删除Session、request、context等时,会自动触发该事件对应的Listeer。
2、监听器的分类:
1>监听 Session、request、context 的创建于销毁,分别为
HttpSessionLister、ServletContextListener、ServletRequestListener
2>监听对象属性变化,分别为:
HttpSessionAttributeLister、ServletContextAttributeListener、ServletRequestAttributeListener 
3>监听Session 内的对象,分别为:
HttpSessionBindingListener 和 HttpSessionActivationListener。
3、监听器的配置:
<listener>标签与 <listener-class>;
<listener>一般配置在 <servlet>便签的前面;
web.xml中
<listener>
<listener-class>servlet.listener.MyListener</listener-class>
</listener>
十六、常用的JSTL标签
1、核心标签
	<c:out>,<c:set>,<c:if>,<c:choose>,<c:when>,<c:forEach>
2、格式化标签
	<fmt:formatDate>,<fmt:formatNumber>
3、SQL标签
4、XML标签
5、JSTL函数
	fn:contains(),
十七、JSP的指令
1、Jsp包含三个编译指令和七个动作指令。
2、三个编译指令为:page、include、taglib。
3、七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty

十八、request.getSession()、reqeust.getSession(false)和 request.getSession(true)
getSession()/getSession(true):当session存在时返回该session,否则新建一个  session并返回该对象
getSession(false):当session存在时返回该session,否则返回null
Page和PageContext的区别
Page是servlet对象;使用this关键字,它的作用范围是在同一页面。
PageContext是作用域通信对象;通常使用setAttribute()getAttribute()来设置和获取存放对象的值。

十九、onready和onload的区别
1.onready比onload先执行
2.onready是在页面解析完成之后执行,而onload是在页面所有元素加载后执行
3.onload只执行最后一个而onready可以执行多个。

二十、项目的生命周期
1.需求分析
2.概要设计
3.详细设计(用例图,流程图,类图)
4.数据库设计(powerdesigner)
5.代码开发(编写)
6.单元测试(junit 白盒测试)(开发人员)
svn版本管理工具(提交,更新代码,文档)
7.集成测试 (黑盒测试,loadrunner(编写测试脚本)(高级测试))
8.上线试运行 (用户自己体验)
9.压力测试(loadrunner)
10.正式上线
11.维护
二十一、经常访问的技术网站
1.csdn(详细步骤的描述)
2.iteye(详细步骤的描述)
3.oschina(开源中国获取java开源方面的信息技术)
4.java开源大全 www.open-open.com(获取java开源方面的信息技术)
5.infoq(对java,php,.net等这些语言的一些最新消息的报道)
二十三、osi七层模型
第一层:物理层
第二层:数据链路层
第三层:网络层
第四层:传输层
第五层:会话层
第六层:表示层
第七层:应用层
二十四、找到解决svn冲突方法
对于svn冲突,可以采用手工处理将冲突的部分进行整合,
之后备份最新整合后的文件,采用覆盖更新的方式处理完
冲突之后,再把最新整合后的文件进行提交。
二十五、反射的描述
通过字符串可以动态创建java对象,并且可以动态访问方法,属性等。
我们在项目中的时候封装过数据库jdbc的持久层,其中就利用反射这项技术来达到通用和灵活的目的。
二十二、防止表单重复提交
针对于重复提交的整体解决方案:
1.用redirect来解决重复提交的问题
2.点击一次之后,按钮失效
3.通过loading
4.自定义重复提交过滤器
5.解决struts2重复提交
可以结合s:token标签来解决重复提交问题
利用token的原理:
1.在前端的jsp页面中加入s:token标签,在访问该页面时就会生成隐藏域,该隐藏域中包含一个随机生成的字符串,并把该字符串存入session中
2.在struts2的配置文件中加入token拦截器后,当正常访问action的时候,会从session中取出该字符串,然后和页面隐藏域中提交字符串做对比,如果一致则正常执行并删除session中存储的字符串。
二十六、Spring融入框架
我们通过在web.xml中配置ContextLoaderListener这个监听器也加载spring的配置文件,从而融入到项目框架中。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z1427094386

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值