java面试填空题 jsp_Java面试题:Servlet和JSP常见面试题

[面试题]

1、简单说说tomcat的配置?

JAVA_HOME=JDK的根目录

CATALINA_HOME=tomcat的根目录

CATALINA-HOME\conf\server.xml:可以配置tomcat的端口,可以配置tomcat中下连接池。

CATALINA-HOME\common\lib:存放公用的类包

在My eclipse中如何配置tomcat

在eclipse中,选择windows->preference->MyEclipse->ApplicationServer->Tomcat

选择Tomcat 的安装目录,并选择TomCat所需的jdk,选择enable,确定即可。

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

jsp:include:在运行时调用另一个页面,变量是可以重复的。

:在转译时合在一起,会成为同一个类,变量不可以重复。

3、forward和redirect的区别?

forward: 转发,在下一个页面中,request保留上一个页面中的request的所有值

redirect: 跳转,不传递request对象。

4、Servlet的体系结构是什么?

Servlet

GenericServlet

HttpServlet

自定义

5、如何实现一个自定义的servlet?

extends HttpServlet 并覆盖doPost或doGet方法

在web.xml中进行部署

6、Servlet的生命周期是什么?

Init

多次执行doGet或doPost

Destroy

7、jsp就是一个servlet是否正确?

8、请罗列jsp中的脚本、指令及动作?

脚本

指令

动作:

  在scope中如果没有实例化一个对象,如果有直接用以前的。

  向一个bean中设置属性值

  jsp页的转发

  导入一个jsp页面

9、JSP的内置对象及方法

Request request表示HttpServletRequest对象。取客户端表单域信息及cookie, header, 和session

responseresponse表示HttpServletResponse对象,对客户端的响应返回文本、写cookies。

out out 向客户端打印html文本.

pageContext :当前jsp页面的上下文环境,可以得到session、request、application等内置对象,在自定义标签中使用的很多。

session session表示一个请求的javax.servlet.http.HttpSession对象。Session一个用户多个页面共享同一变量。

application applicaton 表示一个javax.servle.ServletContext对象。存放容器级的变量。

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

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

exception:异常,当iserrorpage=true

10、说出在JSP页面里是怎么分页的?

页面需要保存以下参数:(数据库的分页及比较)

总行数:根据sql语句得到总行数

每页显示行数:设定值

当前页数:请求参数

页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行,对结果集取出每页显示行数的行即可。

数据库:

Sqlserver:

SELECT TOP 页大小 *

FROM TestTable

WHERE (ID NOT IN

(SELECT TOP 页大小*(页数-1) id

FROM 表

ORDER BY id))

ORDER BY ID

--pageSize=5  页大小

--pageIndex=2 所要的页

--如果有主键可以,没以及键不行

select top 5 *

from aa where a1 not in

(select top 5 a1 from aa order by a1)

order by a1;

oracle:

select * from '||v_sql||' where rownum

pageLastRow||'minus select * from '||v_sql

||' where rownum

Session

先取出数据中的所有信息封装到对象并保存在session中,转发到jsp页面做如下处理。

a1a2

List l=(List)session.getAttribute("as");

//一页显示多少行

int pageSize=3;

//总页数

int pageCount=0;

int currentPage=1;

if(l!=null && l.size()>0)

{

pageCount=(l.size()/pageSize)+(l.size()%pageSize==0?0:1);

if(request.getParameter("page")!=null)

{

currentPage=Integer.parseInt(request.getParameter("page"));

}

if(currentPage<1)

{

currentPage=1;

}

if(currentPage>pageCount)

{

currentPage=pageCount;

}

for (int i = (currentPage-1)*pageSize; i

{

if(i>=l.size())

{

break;

}

Aa aa=(Aa)l.get(i);

%>

}

}

%>

if(currentPage!=1)

{

%>

首页  

上一页  

}

if(currentPage!=pageCount)

{

%>

下一页  

最后一页  

}

%>

11、include的两种实现方式的区别?

:在将jsp生成servlet类前将两个文件和在一起,生成一个java类,一起运行的。所以是一家子,当中的变量名不能重名。

:是两个类,是一个调用关系,在运行时动态的调用,不是一家子,可以重复变量。

12、jsp页面中两种跳转方式分别是什么?有什么区别?

转发: 保留上次的request

actionMapping.findForWard(“”);

pageContext.forward();

request.getRequestDispacher(“a.jsp”).forward(request,response)

跳转:不保留上次的request

Response.setRedirect(“”)

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

Jsp主要在于页面的显示动态生成页面,可以与html标记一起使用,其还是要生成为一个servlet。

Servlet:主要是控制的处理,如调用业务层,跳转不同的jsp页面。

Mvc:

Jsp:v

Servlet:c

14、在JSP中如何读取客户端的请求,如何确定某个Jsp文件的真实路径?

Request.getparameter(“”)

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

Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储的数据量有限。

Session:保存在服务端,每一个session在服务端有一个sessionID作一个标识。存储的数据量大,安全性高。占用服务端的内存资源。

16、说明Jsp中errorPage的作用,应用范围。

正常页面中

%@page erropage=”error.jsp”%

错误页面

有一内置对象:exception

17、介绍在Jsp中如何使用JavaBeans

New 类();

%>

19、简单介绍JSP的标记库

做一个标记处理类 extends TagSupport

通过tld说明标记处理的类的前缀及后缀

在web.xml中说明tld文件

在jsp页面是引用tld

20、Servlet中的核心类有那些,各有什么特点?

ServletContext:容器,放置全局变量

setAtribute()

getAttribute()

ServletConfig:一个servlet的配置

getInitParameter(”名称”)

HttpServletRequest:封装的所有的请求

getParameterValue(”名称”)

getParameterValues(”称”)

getSession();

getAttribute(” 名称”);

getRequestDispatch(”a.jsp”).forward(request,response)

HttpServletResponse:响应

getOut();

sendRedirect(””)

HttpSession:一个用户多个页面共享同一变量

setAttribute(””,””)

21、Servlet中重要的包有那些,有什么区别?

javax.servlet.*;javax.servlet.http.*;

22、说出Servlet的生命周期,并说出Servlet和CGI的区别?

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处理服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

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

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

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

在doGet及doPost方法前加入synchoronized

JSP:

27、Request对象的主要方法:

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

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

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

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

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

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

实例

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):删除请求中的一个属性

28、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?

Public String translate (String str) {

String tempStr = "";

try {

tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");

tempStr = tempStr.trim();

}

catch (Exception e) {

System.err.println(e.getMessage());

}

return tempStr;

}

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

public void init(ServletConfig config)

public ServletConfig getServletConfig()

public String getServletInfo()

public void service(ServletRequest request,ServletResponse response)

public void destroy()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值