WEB

本文深入探讨了JSP与Servlet技术的关键概念,包括css和div的优势、页面间参数传递方式、forward与redirect的区别等内容,并详细解释了session的工作机制及管理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

css和div 开发的优势? 
A、显示和内容实现分离 
B、有利于搜索引擎搜索 
C、有利于维护和程序的扩展 
2.    谈谈页面间的参数传递有哪些方式 ? 
A、通过作用域对象session、request 的setAttribute()和getAttribute()方法进行参数传递。
B、<jsp:forward> 
        <jsp:param name= value=> 
   </jsp:forward> 
C、request.gerRequestDispatcher(“1.jsp?name=XX”).forward(request,response); 
D、<jsp:useBean id=  class= scope=request/session> 
java servlet api中forward() 与redirect()的区别? 

1.forward客户端请求服务器一次,redirect请求服务器两次,所以forward方式可以获得request作用域的信息,而redirect方式不能获得。 
2.forward由request对象发出,而redirect由response对象发起 
3.redirect()可以跨越不同的工程之间。而forward()只能在一个工程中使用 

cookie被禁止后怎样使用session? 

URL重写,对所有页面涉及的连接都使用url重写方式。从而将JsessionID以参数的方式链接到URL后面。保证每次页面提交时服务器都能获得sessionID,从而维持和客户端的状态
25.    说说preparedStatement和Statement的区别 
1)    效率:预编译会话比普通会话对象,数据库系统不会对相同的sql语句不会再次编译 
2)    安全性,可以有效的避免sql注入攻击!sql注入攻击就是从客户端输入一些非法的特殊字符,而使服务器端在构造sql语句的时候仍然能够正确构造,从而收集程序和服务器的信息和数据。

Servlet编写后需要在WEB应用的web.xml进行注册,从而能让WEB容器识别用户编码的Servlet。但JSP由容器来管理,所以无需注册。 
解决Servlet线程安全问题方法有三种 
1)编写Servlet类的时候,实现SingleThreadModel接口,将Servlet变成单线程机制。 
2)涉及对共享资源访问的时候,使用synchronized同步加锁,实现共享资源的保护。 
3)尽量不在Servlet中定义成员变量,使用局部变量。

44.    session对象是什么时候产生的,什么时候销毁的? 

当用户访问web容器,而容器调用了request.getSession()方法后,产生Session对象。用以保存客户端在服务器上的信息。同时给这个Session分配一个唯一的标识ID。并产生一个set-cookies的响应头,以JsessionID作为键,标识ID作为值向客户端的cookie中写入内容,当客户端下次再发出请求时,就会将这个JsessionID以请求头的方式向服务器进行发送。而容器读取了JsessionID请求头后,就会根据这个ID找到相对应的Session对象,从而维持服务器和客户端的状态。 

销毁session方法有三种 

1)session超时 
2)调用session对象的invalidate()方法 
3)web容器关闭或崩溃 
程序能控制是前二种。 

46.    session和cookie有什么区别。 
1)    session保存在服务器,客户端不知道它的信息;而cookie保存在客户端,服务器知道其中的信息。 
2)    session中 保存的是对象,而cookie中保存的是字符串 
3)    session是不能区分路径的,同一个客户在访问web服务器之间,在任何地方都能够访问得到session中保存的信息的。而cookie如果设置了路径参数,同一个网站下的不同路径的cookie互相是访问不到的。 
4)    session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSESSIONID的输出cookie,我们叫做session cookie,以区别persistent cookies,也就是我们通常所说的cookie,注意session cookie是存储于浏览器内存中的,并不是写到硬盘上的,这也就是我们刚才看到的JSESSIONID,我们通常情是看不到JSESSIONID的,但是当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到sessionid=KWJHUG6JJM65HS2K6之类的字符串。

51.    请求转发和重定向的区别。 
1)    内部转发客户端向服务器发起一次请求,重定向客户端向服务器发出两次请求 
2)    内部转发由request对象发起,重定向是response发起的 
3)    内部转发不会引起地址栏的变化,而重定向会导致地址栏变化 

52.    JSP中动态包含和静态包含的区别。 
1)    静态包含在转换成为java文件的时候将要包含的文件包含进来,作为一个整体编译。动态包含是各个包含文件分别转换,分别编译。 
2)    静态包含在两个文件中不能有相同的变量,动态包含允许 
3)    静态包含只能包含文件,动态包含还可以包含servlet输出的结果 
4)    静态包含不能使用变量作为文件名,动态包含可以使用变量作为文件名 
5)    动态包含文件发生变化,包含文件会感知变化。  

66.    请谈谈请求转发的原理? 
请求转发是针对同一工程下资源的转发。客户端在这个过程中,只请求服务器一次,请求转发由request.getRequestDispather(“”).forward(request,response). 
67.    请说明重定向的原理? 
重定向由response发起。当用户请求服务器时,由服务器向客户端发送一个302的状态码,并产生一个Location的响应头。当客户端接受到这样的状态码时,会马上读取Location响应头,并将地址栏改为Location里的内容。然后再向服务器发出请求。这个过程中客户端发出了两次请求。并可向不同的服务器发送请求。 
96.    session如何过期?项目中该怎么应用? 
setMaxInternalTime(); session.invalide();…. 
在web.xml中加入 
<session-config> 
        <session-timeout>30</session-timeout> 
</session-config>

8. request.getAttribute() 和 request.getParameter() 有何区别?

getParameter得到的都是String类型的。或者是http://a.jsp?id=123中的123,或者是某个表单提交过去的数据。
getAttribute则可以是对象。getParameter()是获取POST/GET传递的参数值;
getAttribute()是获取对象容器中的数据值request.getParameter()是接受从浏览器上发出的请求,返回的一定是一个String。
request.getAttribute()一般是取从Servlet上setAttribute()的对象,返回可以是各种形式(Object)
12. JSP中动态INCLUDE与静态INCLUDE的区别?

答:动态INCLUDE用jsp:include动作实现

<jsp:include page=included.jspflush=true />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file=included.htm %>


13、页面间对象传递的方法

request,session,application,cookie等

转载于:https://my.oschina.net/goudingcheng/blog/1499618

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值