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:在运行时调用另一个页面,变量是可以重复的。 <%@include file=””%>:在转译时合在一起,会成为同一个类,变量不可以重复。
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中的脚本、指令及动作?
脚本
<%%> <%=%> <%!%> <%----%>
指令
<%@page contentType=”text/html;charset=utf-8” language=”java” import=””%> <%@include file=””%> <%@taglib uri=”” prefix=””%> 动作: <jsp:useBean class=”” id=”” scope=””> 在scope中如果没有实例化一个工具,如果有直接用以前的。 <jsp:getProperty name=”” property=””> 向一个bean中设置属性值
<jsp:forward > jsp页的转发
<jsp:include page=””> 导入一个jsp页面
9、JSP的内置工具及方法
Request request表示HttpServletRequest工具。取客户端表单域信息及cookie, header, 和session response response表示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实例的初始化参数。 page page表示从该页面产生的一个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<'||pageFirstRow;
Session
先取出数据中的所有信息封装到工具并保存在session中,转发到jsp页面做如下处理。 <table border=\"大众1\"大众> <tr> <td>a1</td> <td>a2</td> </tr> <% 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 <(currentPage-1)pageSize+pageSize; i++) { if(i>=l.size()) { break; } Aa aa=(Aa)l.get(i); %> <tr> <td><%=aa.getA1()%></td> <td><%=aa.getA2()%></td> </tr> <% } } %> <tr>
<td colspan=\"大众2\"大众>
<% if(currentPage!=1) { %> <a href=\"大众page.jsp?page=1\"大众>首页</a> <a href=\公众page.jsp?page=<%=currentPage-1%>\"大众>上一页</a> <% } if(currentPage!=pageCount) { %>
<a href=\公众page.jsp?page=<%=currentPage+1%>\"大众>下一页</a> <a href=\"大众page.jsp?page=<%=pageCount%>\公众>末了一页</a> <% } %> </td>
</tr>
</table>
11、include的两种实现办法的差异?
<@include file>:在将jsp天生servlet类前将两个文件和在一起,天生一个java类,一起运行的。所以是一家子,当中的变量名不能重名。 <jsp:include page>:是两个类,是一个调用关系,在运行时动态的调用,不是一家子,可以重复变量。
12、jsp页面中两种跳转办法分别是什么?有什么差异?
转发: 保留上次的request
<jsp:forward> 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(“”) <%=application.getRealPath(\"大众aa.jsp\公众) %>
15、描述Cookie和Session的浸染,差异和各自的运用范围,Session事情事理。
Cookie:紧张用在保存客户端,其值在客户端与做事端之间传送,不屈安,存储的数据量有限。 Session:保存在做事端,每一个session在做事端有一个sessionID作一个标识。存储的数据量大,安全性高。占用做事真个内存资源。
16、解释Jsp中errorPage的浸染,运用范围。
正常页面中 %@page erropage=”error.jsp”% 缺点页面 <%@page iserrorpage=”true”%> 有一内置工具:exception
17、先容在Jsp中如何利用JavaBeans
<jsp:useBean class=”” id=”” scope=””/> <% New 类(); %>
19、大略先容JSP的标记库
做一个标记处理类 extends TagSupport
通过tld解释标记处理的类的前缀及后缀在web.xml中解释tld文件 <taglib> <taglib-uri> <taglib-location> <taglib> 在jsp页面是引用tld<%@taglib uri=”” prefix=””%>
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: <%@ page isThreadSafe=\"大众true\"大众%>
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()