jsp基础知识(jsp)

时间:2024.5.4

5. 请讲一讲析构函数和虚函数的用法和作用。

析构函数是用来释放所定义的对象中使用的指针,默认的析构函数不用显示调用,自建的析构函数要在程序末尾调用。

虚函数可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,而不是基类中定义的成员函数(只要派生类改写了该成员函数)。若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都会调用基类中定义的那个函数。

9. heap和stack有什么区别。

栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。

堆是栈的一个组成元素

10. 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。

public class BigInt()

{

int[] ArrOne = new ArrOne[1000];

String intString="";

public int[] Arr(String s)

{

intString = s;

for(int i=0;i<ArrOne.leght;i++)

{ 11. 如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现

============================================================================

1.jsp的内置对象有哪些?功能是什么?

内置对象是不需要声明,直接可以在JSP中使用的对象,JSP有以下几种内置对象: request

request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header,和session数据的有用的方法。

response

response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)

out

out 对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext

pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

application

applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

config

config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

page

page表示从该页面产生的一个servlet实例。

2. jsp中静态include和动态的有什么区别?

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

静态INCLUDE

用include伪码实现,不会检查所含文件的变化,适用于包含静态页面 JSP企业面试题整理(4)

5-1. 简述Servlet和JSP的关系。

JSP是以另外一种方式实现的Servlet,Servlet是JSP的早期版本,在JSP中,更加注重页面的表现,而在Servlet中则更注重业务逻辑的实现。

因此,当编写的页面显示效果比较复杂时,首选是JSP。或者在开发过程中,HTML代码经常发生变化,而Java代码则相对比较固定时,可以选择JSP。而我们在处理业务逻辑时,首选则是Servlet。

同时,JSP只能处理浏览器的请求,而Servlet则可以处理一个客户端的应用程序请求。因此,Servlet加强了Web服务器的功能。

5-2. 简述Servlet的生命周期。(企业笔试题)

Servlet运行机制和Applet类似,Servlet是载服务器端运行的,但是Applet是在客户端运行的。Servlet是javax.servlet包中HttpServlet类的子类,由服务器完成该子类的创建和初始化。

Servlet的生命周期主要由3个过程组成。

1、init()方法:服务器初始化Servlet。

2、service()方法:初始化完毕,Servlet对象调用该方法相应客户的请求。

3、destroy()方法:调用该方法消灭Servlet对象。

其中,init()方法只在Servlet第一次被请求加载的时候被调用一次,当有客户再请求Servlet服务时,Web服务器将启动一个新的线程,在该线程中,调用service方法相应客户的请求。

5-3. 简述HttpSession接口的功能和使用方法。(企业笔试题)

这是一个java.servelt.http包中的接口,它封装了会话的概念。定义为:“public interface HttpSession”,可以使用HttpServletRequest对象的getSession()方法来得到这种类型的对象,语法为:“HttpSession session = request.getSession();”。

5-5. 编写一个HTML文件,利用Servelt的doPost方法实现Form表单内容的读取。(上机完成)(企业笔试题)

案例名称:使用doGet和doPost方法

程序名称:j5_02.htm

<HTML>

<BODY>

<FORM ACTION="/doget" METHOD="get">

请输入姓名:

<INPUT TYPE="TEXT" NAME="myname"><br>

您的兴趣:

<SELECT NAME="love">

<OPTION value="Sleep">Sleep</OPTION>

<OPTION value="Dance">Dance</OPTION>

<OPTION value="Travel">Travel</OPTION>

</SELECT><br>

<INPUT TYPE="SUBMIT" NAME="mysubmit"><br>

<INPUT TYPE="RESET" VALUE="重新来过"><br>

</FORM>

</BODY>

</HTML>

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class j5_03 extends HttpServlet

{

//重写doPost方法

public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException

{

//首先设置头信息

res.setContentType("text/html");

//用 writer方法返回响应数据

PrintWriter out = res.getWriter();

out.println("<html><head></head><body>");

out.println("name: " + req.getParameter("myname"));

out.println("<br>");

out.println("love: " + req.getParameter("love"));

out.println("</body></html>");

out.close();

}

public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException{

doPost(req,res);

}

}

6-1 什么是组件?使用组件有什么优点?

现在软件开发都已经转向了基于组件的开发,目前具备代表性的组件技术有微软的COM、COM+,有Sun的JavaBean和EJB(Enterprise Java Bean),另外还有CORBA(Common Object Request Broker Architecture,公共对象请求代理结构)

JavaBean规范将“软件组件”的概念引入到Java编程的领域。组件是自包含的、可重用的软件单元;而JavaBean组件,则可以使用可视的应用程序开发工具,可视地将它们编写到Java程序中。JavaBean规范为Java开发人员提供了一种“组件化”其Java类的方法

6-2 编写JavaBean的时候,要注意哪些?

1、如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,在类中使用两个方法:

getXxx(),用来获取属性xxx。

setXxx(),用来修改属性xxx。

2、对于boolean类型的成员变量,允许使用is代替get和set。

3、类中方法的访问属性必须是public的。

4、类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。 6-3 简述JSP的设计模式。(企业笔试题)

JSP设计模式包括两个:(1)Model1,JSP+JavaBean设计模式。(2)Model2,MVC设计模式。

在这种模式中,JSP页面独自响应请求并将处理结果返回客户,所有的数据库操作通过JavaBean来实现。大量地使用这种模式,常会导致在JSP页面中嵌入大量的Java代码,当需要处理的商业逻辑非常复杂时,这种情况就会变得很糟糕。大量的Java代码使得JSP页面变得非常臃肿。前端的页面设计人员稍有不慎,就有可能破坏关系到商业逻辑的代码。 “MVC”模式即是:“Model-View-Controller”模式。在这种模式中,通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作,实现用户的商业逻辑。

在这种模式中,Servlet用来处理请求的事务,充当了控制器(Controller即“C”)的角色,Servlet负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户。JSP页面处于表现层,也就是视图(View即“V”)的角色。JavaBean则负责数据的处理,也就是模型(Model即“M”)的角色。

说一下你对struts框架的理解

答:Struts是在jspModel2基础上实现的MVC框架。Struts框架结合了jsp,servlet,javabean,taglib的技术,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件组成。 Struts的配置文件是struts-config.xml,其中保存着描述用户请求路径和Action映射关系的配置信息。

2.struts的主要内容

答:Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。由jsp充当view层,jsp中大量运用tag来控制页面逻辑;ActionServlet负责控制层,通过ActionForm来接收用户输入,一般在struts-config.xml文件中配置form bean,action以及转发等。Model层主要是一些javabean,具体处理用户对象。

3.Struts框架是自己搭建的吗?

答:是。

4.除了Struts框架还用过什么框架?

答:Hibernate框架和spring框架。

5.errors在页面上怎么表现出来?

答:配置文件里有错误对应的各种消息,从ActionMessages里读出来,显示在页面上。可以用<html:error >标签来显示错误。

6.view层都有什么?

答:jsp,html。

7.struts标签具体用过什么?Logic标签呢,要实现循环打印用什么标签

答:用过HTML、Bean、Logic、Tiles、Nested标签。要实现循环打印用<logic:iterate>标签。

8.用过Tiles吗?

答:用过。

9.Tiles是什么?怎样引入?在web.xml中怎样配置?

答:Tiles是一个模板机制,让配置框架与版面分离,提供版面管理。

引入:

<%@ include file="/common/taglibs.jsp"%>

<tiles:insert definition="setting.projectInfo" flush="true" />

插入setting.projectInfo标记的一页

taglibs.jsp里包括这么一句话:

<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>

在web.xml里面配置tiles对应的taglib的配置如下:

<taglib>

<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>

<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>

</taglib>

10.实现功能时有前台校验吗?怎么实现的?

答:有。用javaScript实现。

11.JSP中动态INCLUDE与静态INCLUDE的区别?

答:动态INCLUDE 用jsp:include动作实现 <jsp:include page="included.jsp"

flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

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

12.页面基本操作用到那些控件?

答:Textbox、Textarea、Password 、Label 、Button、Checkbox

13.页面的跳转有几种方法,具体有哪些方法?

答:页面跳转有两种方式,

一个是重定向,通过response.sendRedirect()实现;

一个是请求转发,通过RequestDispatch的forward()方法实现;

14.页面跳转的配置除了在Struts-config.xml中配置外,还可以在哪配?

答:还可以直接在页面里用sendRedirect(),以及forward方法跳转。

15.jsp与FormBean的关系

答:FormBean是对页面请求的封装,即把HttpRequest封装在一个对象中,多个HttpRequest可以共用一个FormBean。 jsp中的form和FormBean由<action-mappings>的name属性对应。

16.FormBean如何写,写什么?

答:FormBean必须继承于ActionForm,里要有与其对应的jsp的属性,以及属性的get,set方法。如果需要验证还有validate方法。还可以写重置方法。

17.jsp、action、formBean的关系,在struts中怎么配置对应的关系

答:jsp负责前台显示,接受用户输入,action负责调用formBean的方法,更新其状态,然后将结果返回给控制器,生成合适的jsp。

18.Servlet的配置!页面跳转是经过Servlet的什么来跳转的?

答:RequestDispatcher 的forward()方法。

19.“struts-config.xml“,配制文件的作用?前后台的数据,怎么交换?

答: struts-config.xml文件中配置formbeans 和 对应的action以及转发url。前台的数据封装到ActionForm中,再根据相应的ActionMapping来查找对应的action。

20.MVC都具体代表什么?有那些内容?Servlet对应什么?在哪里进行配置? 答:model-view-controller(模型-视图-控制器,简称MVC)

Model(模型)是负责保持状态的应用组件。

View(视图)是负责显示用户界面的组件。

Controller(控制器)是处理用户交互,操作模型和最终选择用哪个视图来显示UI的组件。 Servlet对应的是controller,控制器 在web.xml中配置。

21.Validator配置文件如何配置

答:在validator.xml中配置ActionForm的验证规则。

在struts-config.xml文件中添加

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames"

value="/WEB-INF/validator-rules.xml,

/WEB-INF/validation.xml"/>

</plug-in> 来启动校验机制

validation.xml确定哪个验证例行程序应用到哪个Form Bean。文件中的定义使用

struts-config.xml文件给出的Form Bean的逻辑名称以及validator-rules.xml文件给出的验证例行程序的逻辑名称,以便把二者关联起来。

validation.xml配置如下

<formset>

<form name="logonForm">//是struts-config.xml中formBean的名字。

<field property="username" //username是formBean的属性

depends="required">// 验证条件

<arg0 key="prompt.username"/>

</field>

</form>

</formset>

22.struts-config.xml写过吗?要配置什么内容?用的最多的是什么?怎么配置的?

(scope、parameter)

答:struts-config.xml中主要配置form-bean 和 action-mapping,action的scope和各种跳转。定义formBean 配置<action-mappings>。用得最多的就是配置<action-mappings> <action path="/login"//提交路径

type="isssh.Action.LoginAction"//连接到本映射的Action类的全称

name="LoginForm"//与本操作关联的Action bean的名称

scope="request"//ActionForm bean的作用域(请求或会话)request是请求域。Session是会话域 input="/pages/Login.jsp">输入表单的路径,指向bean发生输入错误必须返回的控制

23.validation.Xml怎么写?Msg怎么写,所用到的消息如何管理?

答:validation.xml文件用于声明将应用到Form Beans的一组验证。要验证的每个Form Bean在这个文件中都有自己的定义。在这个定义中,指定要应用到该Form Bean的各域的验证。下面是一个validation.xml文件的例子,说明如何定义验证:

<!DOCTYPE form-validation

PUBLIC "-//Apache Software Foundation//

DTD Commons Validator Rules

Configuration 1.0//EN"

"/

commons/dtds/validator_1_0.dtd">

<form-validation>

<formset>

<form name="logonForm">

<field property="username"

depends="required">

<arg0 key="prompt.username"/>

</field>

<field property="password"

depends="required">

<arg0 key="prompt.password"/>

</field>

</form>

</formset>

</form-validation>

validation.xml文件的第一个元素是form-validation。这个元素是该文件的主元素,而且只定义一次。在fo每个表单元素使用name属性将名称与其所包含的域验证集关联起来。Validator使用这个逻辑名称将这些验证证。field元素的property属性对应于特定Form Bean中的域名。depends属性利用validator-rules.xml文件validator-rules.xml文件中的每个验证例行程序都用validator标记的msg属性指定错误消息的键值如:msg而 errors.required 在ApplicationResources.properties中定义如:errors.required={0} is required.

24.校验分哪几个层次?

答:两个,客户端验证,主要是一些简单的输入输出验证,用javascript来;服务器端的

验证,主要是业务逻辑的验证,如用户名密码匹配等;

25.做到访问数据库了吗?怎么访问数据库的(概括回答)?

答:jdbc或连接池或hibernate

26.你所做的项目中用到数据库吗?对数据库是怎么操作的?

答:用到。通过jdbc连接,可以直接在java中写sql代码运行,也可以用hibernate对数

据库进行操作。对各个具体的bean都有相应的dao负责数据库的增删改查。也可以答,增

加一个持久化层,用hibernate或dao其它什么框架来进行数据库操作。

27.Module层做什么,在项目中具体作什么?

答:model主要用来具体处理业务。

28.在Module层,怎么写业务逻辑?

答:我们在struts结构里把业务逻辑写在Action里,实际上就是写在Module层里。

29.EJB的分类,各自有什么特点?

答:在EJB2.0中定义了三种不同类别的EJB:Session Bean(会话Bean)、Entity Bean

(实体Bean)和Message-Driven Bean(消息驱动Bean)。

1 会话Bean

会话Bean是商务过程对象,执行商务逻辑、规则和工作流程。会话Bean之所以被称为会话

Bean,是因为它代表的是一个动作、是一个过程,它的生存期就是调用它的客户端与它进行

会话的过程。

会话Bean根据其是否保存客户的状态,又分为状态会话Bean和无状态会话Bean。状态会

话Bean是一种保持会话状态的服务,每个实例都与特定的客户机相关联,在与客户机的方

法调用之间维持对话状态。与之相反,无状态会话Bean不保存与特定客户的对话状态。因

此状态会话Bean比无状态会话Bean具有更多的功能,而无状态会话Bean实例可以通过 EJB

容器自由地在客户机之间交换,从而少量的会话Bean就可以服务于大量的客户机。

2 实体Bean

实体Bean代表商务上的实体,比如商务数据,应该包含与数据相关的逻辑。实体Bean是对应到数据库中的一个视图,一个实体Bean实例和底层数据库完全是一回事。因此,一个简单的实体bean实例代表一个特殊的记录。更复杂的实体bean可以代表数据库表间关联视图。 实体Bean有两种操作类型:BMP(Bean管理持久性)和CMP(容器管理持久性)。BMP是指由Bean自己来实现实体Bean的持久性,即在Bean中实现数据库操作。而CMP则是由容器实现Bean的持久性,使我们不需要在Bean内再编写数据库操作的代码。

3 消息驱动Bean

消息驱动Bean是EJB2.0新引入的一种Bean类型。它的主要目的是,通过允许容器去聚合并且管理消息驱动Bean实例,以此来提供传入JMS消息的并发处理。

30.Session Bean 有几种?有什么区别?

答:2种。Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。

31.css用过吗?怎么用的呢?如何去用?

答:用过。css主要用来做一些页面效果,字体,控件的效果等;写一个css文件,<link>进页面就可以了。

CSS按其位置可以分成三种:

1。Inline Style是写在Tag里面的。内嵌样式只对所在的Tag有效。

如:<P style='font-size:20pt; color:red'>这个Style定义<p></p>里面的文字是20pt字体,字体颜色是红色。</p>

2。内部样式

内部样式表(Internal Sytle Sheet)要用到Style这个Tag,写法如下:

<STYLE type='text/css'>

......

</STYLE>

3。外部样式表(External Style Sheet)

将样式(Styles)写在一个以.css为后缀的CSS文件里,然后在每个需要用到这些样式(Styles)的网页里引用这个CSS文件。

然后你建立一个网页,代码如下:

<HTML>

<HEAD>

<link href='../asdocs/css_tutorials/home.css' rel='stylesheet' type='text/css'>

32.Junit用过吗?

答:用过

33.单体测试都写什么

答:用Junit写出要测得case,每个case中分别给出输入值和期望的结果。

34.怎么样输出Debug信息?

答:使用Log4J

35.Log4J用过吗?

答:Log4j中有一个方法log.debug();用此方法输出Debug信息。

private static String CLASS_NAME = "com.bingo.test.Lo4jTest";

private static Logger log = Logger.getLogger(CLASS_NAME);

log.debug("Log4j Debug.");

1、jsp有哪些内置对象作用分别是什么

答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet 正在执行的内容

out 用来传送回应的输出

config servlet的构架部件

page JSP网页本身

exception 针对错误网页,未捕捉的例外

2、jsp有哪些动作作用分别是什么

答:JSP共有以下6种基本动作

jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

jsp:getProperty:输出某个JavaBean的属性。

jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

3、JSP中动态INCLUDE与静态INCLUDE的区别?

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

它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面

4、两种跳转方式分别是什么有什么区别

答:有两种,分别为:

前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。

相当于go to 语句。

57、JSP的内置对象及方法。

request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取 cookie, header, 和session数据的有用的方法。

response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)

out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。 session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

page表示从该页面产生的一个servlet实例

二、JSP&Servlet技术

1. 描述JSP和Servlet的区别、共同点、各自应用的范围

2. 在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(< > & “”)

3. 在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。

4. 描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。

5. 列出Jsp中包含外部文件的方式,两者有何区别。

6. 说明Jsp中errorPage的作用,应用范围。

7. 介绍在Jsp中如何使用JavaBeans。

8. 简单介绍JSP的标记库

9. Jsp和Servlet中的请求转发分别如何实现。

59、JSP的常用指令

isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)

60、什么情况下调用doGet()和doPost()?

Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。

61、servlet的生命周期

web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。

62、如何现实servlet的单线程模式

63、页面间对象传递的方法request,session,application,cookie等

64、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

Jsp是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

65、四种会话跟踪技术

会话作用域ServletsJSP 页面描述

page否是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面

request是是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系)

session是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

application是是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

66、Request对象的主要方法:

setAttribute(String name,Object):设置名字为name的request的参数值

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例 getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头信息

getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例

getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

67.在jsp:useBean语法中使用beanName有何好处?

beanName使用Beans.instantiate()初始化Bean

68、Servlet执行时一般实现哪几个方法?

public void init(ServletConfig config)

public ServletConfig getServletConfig()

public String getServletInfo()

public void service(ServletRequest request,ServletResponse response) public void destroy()JSP

1、如何混合使用Jsp和SSI #include?

在JSP中可以使用如下方式包含纯HTML:

<!--#include file="data.inc"-->

但是如果data.inc中包含JSP CODE ,我们可以使用:

<%@include file="data.inc"%>

2、如何执行一个线程安全的JSP?

只需增加如下指令

<%@ page isThreadSafe="false" %>

3、JSP如何处理HTML FORM中的数据?

通过内置的request对象即可,如下:

<%

String item = request.getParameter("item");

int howMany = new Integer(request.getParameter("units")).intValue(); %>

4、在JSP如何包含一个静态文件?

静态包含如下:<%@ include file="copyright.html" %>

动态包含如下:<jsp:include page="copyright.html" flush="true"/>

5、在JSP中如何使用注释?

主要有四中方法:

1。<%-- 与 --%>

2。//

3。/**与**/

4。<!--与-->

6、在JSP中如何执行浏览重定向?

使用如下方式即可response.sendRedirect("http://ybwen./index.html"); 也能物理地改变HTTP HEADER属性,如下:

<% :

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

String newLocn="/newpath/index.html";

response.setHeader("Location",newLocn);

%>

7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中?

把如下脚本加入到JSP文件的开始即可:

<%

response.setHeader("Cache-Control","no-store"); //HTTP 1.1

response.setHeader("Pragma","no-cache"); //HTTP 1.0

response.setDateHeader ("Expires", 0); //prevents caching at the proxy server %>

8、在JSP中如何设置COOKIE?

COOKIE是作为HTTP HEADER的一部分被发送的,如下方法即可设置:

<%

Cookie mycookie = new Cookie("aName","aValue");

response.addCookie(mycookie);

%>

9、在JSP中如何删除一个COOKIE?

<%

Cookie killMyCookie = new Cookie("mycookie", null);

killMyCookie.setMaxAge(0);

killMyCookie.setPath("/");

response.addCookie(killMyCookie);

%>

10、在一个JSP的请求处理中如何停止JSP的执行

如下例:

<%

if (request.getParameter("wen") != null) {

// do something

} else {

return;

}

%>

11、在JSP中如何定义方法

你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。如下:

<%!

public String howBadFrom(HttpServletRequest req) {

HttpSession ses = req.getSession();

...

return req.getRemoteHost();

}

%>

<%

out.print("in general,lao lee is not baddie ");

%>

<%= howBadFrom(request) %>

12、如果BROWSER已关闭了COOKIES,在JSP中我如何打开SESSION来跟踪

使用URL重写即可,如下:

hello1.jsp

<%@ page session="true" %>

<%

Integer num = new Integer(100);

session.putValue("num",num);

String url =response.encodeURL("hello2.jsp");

%>

<a href=<%=url%>>hello2.jsp</a> hello2.jsp

<%@ page session="true" %>

<%

Integer i= (Integer )session.getValue("num");

out.println("Num value in session is "+i.intValue());

%>

13、在JSP中能发送EMAIL吗

可以使用SUN的专用包:sun.net.smtp包。如下脚本使用SmtpClient类发送EMAIL。 <%@ page import="sun.net.smtp.SmtpClient, java.io.*" %>

<%

String from="ybwen@sina.com";

String to="hewenjun@yeah.net, lei@";

try{

SmtpClient client = new SmtpClient("mail.xxxxx.xxx");

client.from(from);

client.to(to);

PrintStream message = client.startMessage();

message.println("To: " + to);

message.println("Subject: Sending email from JSP!");

message.println("This was sent from a JSP page!");

message.println();

message.println("Cool! :-)");

message.println();

message.println("Good Boy");

message.println("Im in genius.com");

message.println();

client.closeServer();

}

catch (IOException e){

System.out.println("ERROR SENDING EMAIL:"+e);

}

%>

14、在SERVLET中我能调用一个JSP错误页吗

当然没问题,如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误页面。

protected void sendErrorRedirect(HttpServletRequest request,

HttpServletResponse response, String errorPageURL,

Throwable e)

throws ServletException, IOException {

request.setAttribute ("javax.servlet.jsp.jspException", e);

getServletConfig().getServletContext().

getRequestDispatcher(errorPageURL).forward(request,

response);

} public void doPost(HttpServletRequest request,HttpServletResponse response) { try {

// do something

} catch (Exception ex) {

try {

sendErrorRedirect(request,response,"/jsp/MyErrorPage.jsp",ex);

} catch (Exception e) {

e.printStackTrace();

}

}

}

15、JSP和APPLET如何通讯

JSP如何与EJB SessionBean通讯

下面的代码段作了很好的示范

<%@ page import="javax.naming.*, javax.rmi.PortableRemoteObject,

foo.AccountHome, foo.Account" %>

<%!

//定义一个对SessionBeanHome接口实例的全局引用

AccountHome accHome=null; public void jspInit() {

//获得Home接口实例

InitialContext cntxt = new InitialContext( );

Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB");

accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class); }

%>

<%

//实例化SessionBean

Account acct = accHome.create();

//调用远程方法

acct.doWhatever(...);

// 如此等等

%>

16、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 可以定义一个简单的函数来达到目的,如下:

<%!

String blanknull(String s) {

return (s == null) ? "" : s;

}

%> 然后在JSP的FORM中,可以这样使用

<input type="text" name="shoesize" value="<%=blanknull(shoesize)%>">

17、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)?

现提供两个解决方案:

A:使用HTTP,

B:在Servlet中,通过设置ContentType和使用java.io包的Stream等类可作到.例如: response.setContentType("application/x-msword");

然后想输出缓冲中写一些东东即可。 18、使用useBean标志初始化BEAN时如何接受初始化参数

使用如下两标签即可:

<jsp:getProperty name="wenBean" property="someProperty"/>

<jsp:setProperty name="wenBean" property="someProperty" value="someValue"/> 19、使用JSP如何获得客户浏览器的信息?

使用request.getHeader(String)即可

20、能象调用子程序一样调用JSP吗?

当然可以,用<jsp:include page="relativeURL" flush="true"/>

21、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS? <%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别? 前一个为静态包含,而后一个为动态包含

22、JSP的缺点?

1。对JAVA程序进行调试没有好东东

2。因大多数的servlet引擎不支持connection pooling

3。Servlet引擎没有标准

4。JSP与其它脚本语言的交互

23、JSP能进行递归调用吗?

当然可以,如对form的提交给本页

24、如何实现JSP的国际化?

为各种版本提供resource bundles属性文件即可

25、在JSP中如何写文本文件?

使用PrintWriter对象,如:

<%@ page import="java.io.*" %>

<%

String str = "print me";

String nameOfTextFile = "/usr/anil/imp.txt";

try {

PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); pw.println(str);

pw.close();

} catch(IOException e) {

out.println(e.getMessage());

}

%>

26、如何在JSP中包括绝对路径文件?

使用URLConnection即可。

27、在servlets和JSP之间能共享session对象吗?

当然可以,

HttpSession session = request.getSession(true);

session.putValue("variable","value");

28、JavaScript的变量能复制到JSP的SESSION中吗?

29、如何设置cookie在某一时间后过期?

用Cookie.setMaxAge(int)

30、如何获得当前的sessions数?

可以使用HttpSessionBindingListeners来跟踪

31、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗?

当然可以,可以为你的JSP文件定义一个名:/jsp/=ybwen.genius.myPreprocessingServlet,而以/jsp/为前缀的文件可以使用

32、对一个JSP页,如果多个客户端同时请求它,同步可能吗? 别

33、当我使用<jsp:forward>时,在浏览器的地址栏没有改变?

使用response.sendRedirect("newURL")

34、如何转换JSP 0.9版本的文件到JSP1.1?

可使用sed/awk即可

35、使用JSP能设置HTML FORM中输入域的焦点,不用JavaScript?

没办法

36、使用JSP连接到数据库连接缓冲池的最好方法是什么?

1.使用JDBC2。0中带有此服务的Driver

2.使用提供有此服务的Application server

3.自己写

1.Servlet的生命周期是什么? Servlet和CGI的区别是什么

答:web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,

根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,

并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

2.描述JSP和Servlet的区别、共同点、各自应用的范围

答:尽管JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet

来生成动态网页很不直观;JSP由HTML代码和JSP标签构成可以方便地编写动态网页因此在实际应用中采用Servlet来控制业务流程,而采

用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.

3.客户请求访问HTML页面与访问Servlet有什么异同?

相同:都使用HTTP协议 ;区别:后者需要在web.xml中配置URL路径。

例子: 假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:

<servlet>

<servlet-name> HelloServlet </servlet-name>

<servlet-class>org.javathinker.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name> HelloServlet </servlet-name>

<url-pattern>/hello</url-pattern>

</servlet-mapping>

那么在浏览器端访问HelloServlet的URL是:

http://localhost:8080/helloapp/hello

4.jsp指令有哪些?

答:jsp指令分为两大类型,page指令和动作指令

动作指令通常有:useBean,setProperty,getProperty,forward,plugin,include jsp如何使用注释?

答:1) <%-- --%> 2); //; 3)/** **/; 4)<!-- -->;

更多相关推荐:
jsp知识点总结

JSP期末复习总结作者张焕HTML基础知识HTML常用标签和元素ltmetahttpequivquotcontenttypequotcontenttexthtmlcharsetgb2312gtcharsetgb...

Jsp基础知识

Jsp基础知识txt如果有来生要做一棵树站成永恒没有悲伤的姿势一半在土里安详一半在风里飞扬一半洒落阴凉一半沐浴阳光非常沉默非常骄傲从不依靠从不寻找1Jsp基础知识总结Jsp我们学完也有好长一段时间间了过程中总结...

jsp基础知识学习

万高石材indexphp组装电脑20xx元电脑配置单Javaee是一个开放的平台它包括很多技术主要有十三种java数据库连接jdbcjava命名和目录接口jndi企业javabeanejbJavaserverp...

JAVA基础知识总结

object类下的方法getClasshashCodeequalstoStringclonewaitnotifynotifyAllfinalizaJSP内置对象request表示HttpServletReque...

Java web开发中的jsp知识总结

Javaweb开发中的jsp知识总结1.jsp简介:jsp是一种基于文本的程序,其特点是HTML代码与Java程序共存,执行时jsp会被tomcat自动翻译,这个过程对开发者是透明的,不需要关注的,编译后的js…

jsp&servlet知识点总结

Servletservelt基于网络的什么是Servelt运行在web服务器或应用服务器上的java程序他是一个中间层负责连接来自web浏览器或其他HTTP客户程序的请求和HTTP服务器上的数据库或应用程序为什...

Java基础知识总结

第1章Java语言概述与面向对象思想111Java语言的发展1111Java语言的产生1112Java语言的发展112Java语言的特点213面向对象与面向过程的差异3131面向过程思想回顾4132面向对象思想...

J2EE基础知识点归纳总结

JDBC1JDBC开发的基础装入jdbc驱动程序创建与数据库的连接创建语句对象StatementPreparedStatement利用语句对象执行sql语句得到结果处理结果jdbc应用结束2JDBC常用的接口使...

java基础知识总结

31EJB包括SessionBeanEntityBean说出他们的生命周期及如何管理事务的32应用服务器有那些33给我一个你最常见到的runtimeexception34接口是否可继承接口抽象类是否可实现imp...

Struts2基础知识总结

Day1一框架概述1三大框架是企业主流JavaEE开发的一套架构Struts2SpringHibernate2什么是框架为什么要学框架框架是实现部分功能的代码半成品使用框架简化企业级软件开发学习框架清楚的知道框...

VC++基础知识总结

基本类模板是一个类模板的集合其中每个类模板有两个参数字符类型charT参数决定处理的元素类型而特性参数对每个特定的元素类型提供一些额外的特征usingnamespacestd详解一ltiostreamgt和lt...

PHP新手总结的PHP基础知识

PHP新手总结的PHP基础知识txt两个男人追一个女人用情浅的会先放弃两个女人追一个男人用情深的会先放弃你的话我连标点符号都不信男女授受不亲中国哪来13亿人口20xx0723最近有好多初学php的站长们寻问一些...

jsp基础知识总结(14篇)