forward>跳转之后地址栏不改变,执行完页面后不会转向还会回来,相当于函数调用,并且可以传递request属性,实际上是对RequestDispatcher接口的封装
服务器端跳转:
response.sendRedirect(),跳转之后地址栏改变,完全转向新的页面,不会再回来,相当于goto语句。
5. 请总结一下WEB开发中的会话跟踪实现
1、 Session也是最常用的一种
2、 Cookie
3、 地址重写
4、 隐藏域
6. 在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选哪些字符
(<>&“‘空格乘号除号.........)
因为以上的标记都属于HTML范畴的内容,所以必须进行转义操作
显示效果 符号说明 实体名表示 实体编号表示
空格符
< 小于号 < <
> 大于号 > >
& 符号& & &
“ 双引号 " "
C 版权符号 © &169;
R 注册商标 ® ®
× 乘号 × ×
÷ 除号 ÷ ÷
‘ 单引号 ´
7. 说明Jsp中errorPage的作用域,应用范围
表示错误页的操作,在一般的站点中,只要一个程序出现了错误,就是产生了异常,则可以统一跳转到一个页面上进行显示,那么这种操作就属于错误页的处理,但是简单的错误页基本上都是在Jsp的开发中使用的。
要想进行错误页的设置,需要满足以下两个条件:
1. 在错误能够处理的页上的page指令中,增加:
isErrorPage=”true”,表示可以处理错误
2. 在每一个页面指定errorPage,执行isErrorPage为true的页面。
如果现在希望能够配置一种全局的错误处理的话,则可以在Web.xml文件中进行配置
404
/errors.jsp
java.lang.NullPointerException
/errors.jsp
一旦出现错误之后,会自动跳转到指定的页面,但是这样的跳转,永远都是属于服务器端跳转
8. 写一段JDBC连接Oracle的程序,并实现数据查询。
packagecom.jdbc;
//importjava.sql.*;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassTestJdbc{
publicstaticvoidmain(String[]args){
Stringurl="jdbc:
oracle:
thin:
@localhost:
1521:
orcl";
Stringusername="lanlan"; //scott
Stringpassword="123456";//tiger
Stringsql="select*fromuserst";
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connectionconn=DriverManager.getConnection(url,username,password);
//PreparedStatementpstmt=conn.prepareStatement(sql);
//ResultSetrs=pstmt.executeQuery();
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("username"));
System.out.println(rs.getString("password"));
}
rs.close();
stmt.close();
// pstmt.close();
conn.close();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
9. Class.forName的作用?
为什么要用?
Class.forName(xxx.xx.xx)返回的是一个类
Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段
10.简述在JSP中是如何实现分页操作的?
分页有两种情况:
真分页:
性能高,是基于数据库的操作,只是从数据库中取出部分的数据进行显示,所以性能高,但是可移植性低
假分页:
性能低,是将全部的结果查询出来,之后依靠算法分页,只显示部分数据,因为使用了通用的语法,所以可移植性高
真分页实现原理:
1.定义一系列的变量:
currentPage(当前页)showResultNumber(每页显示记录数),
并通过查询求出countResultNumber(总记录数)求出countPage(总页数)
|-countPage=(countResultNumber-1)/showResultNumber+1
2.然后根据currentPage和showResultNumber到数据库中查询数据
|-Oracle中用rownumber MySql中用limit()
3.然后在表单中不断地修改currentPage和showResutlNumber就可以实现分页
11.介绍在JSP中如何使用javaBeans
1. javaBean的格式要求:
必须有包、publiccalss声明、属性封装、无参的构造函数、setter()和getter()方法
2. jsp中导入javaBean:
使用import导入如:
<%@pageimport="com.model.User"%>
使用useBean>导入如:
useBeanid="User"class="com.model.User">
useBean>
12.说一说什么是Servlet和Servlet的生命周期?
什么是Servlet:
Servlet是用Java编写的服务端程序,它与协议和平台无关。
Servlet运行于Java-enabledWebServer中。
Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。
Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。
这个过程为:
1.客户端发送请求至服务器端;
2.服务器将请求信息发送至Servlet
3.Servlet生成响应内容并将其传给Server。
响应内容动态生成,通常取决于客户端的请求
4.服务器将响应返回给客户端
Servlet的生命周期:
加载
初始化:
(由应用服务器Tomcat创建)
正常一次,对应init()方法,有两个init()方法,其中一个是具有ServletConfig对象,此方法存在则无参不调用,Servlet对象是由应用服务器在第一次使用的时候创建,一个Servlet只有一个Servlet对象存在。
也可以通过在web.xml文件中配置在容器启动的时候自动进行初始化操作
服务:
服务多次,所有的服务都由service()方法分配,包括doPost()和doGet(),分别处理post和get请求
销毁:
正常一次,调用destroy()方法,当重新加载或者关闭应用服务器的时候应用服务器会销毁Servlet对象,如果一个Servlet长时间不使用,也会自动销毁,而当再次使用的时候就必须重新进行初始化的操作
卸载
13.Servlet中forward()与sendRedirect()的区别?
forward()方法是RequestDispatcher接口定义的,而sendRedirect()是response定义的,sendRedirect()是服务器端的跳转,forward()是客户端的跳转
14.MVC的各个部分都有哪些技术来实现?
如何实现?
1.面向事件驱动的(JSF)
2.面向请求驱动的(Struts1.X,Struts2.X,WebWork)
·MVC:
Model、View、Controller
|-Model(模型)JavaBean:
业务处理、数据处理
|-View(视图)JSP:
最好不存在scriptlet,可以使用标签消除
|-Controller(控制器):
接受View提交的内容并调用JavaBean,并根据JavaBean的处理结果进行跳转
·实现原理:
所有的JSP将内容提交给Servlet,Servlet接收这些内容并调用相对应的JavaBean进行业务及数据的处理,完成业务的操作流程。
Servlet调用的只是接口,并根据这些接口的操作结果将内容交给JSP显示,在显示的时候尽量少出现scriptlet代码。
15.简述国际化程序的实现思路?
·Locale、属性文件、ResourceBundle
·国际化程序的实现,是根据本机的操作系统的语言类型,选择不同的属性文件,所有程序的基本代码一样,但是文字显示不一样,所以将内容作为属性文件出现之后,可以只是显示属性文件中的文字
16.描述JSP和Servlet的区别、共同点、各自应用的范围。
·区别:
先有的Servlet再有的JSP,Servlet是在Java中嵌入HTML代码,而JSP是在HTML代码中嵌入Java代码
jsp是一种脚本语言,简化了java和Servlet的使用难度,同时扩展了网页动态执行的能力
jsp仍然没有超出java和Serlvet的范围,不仅jsp页面上可以直接写java代码,而且jsp是先被编译成Servlet之后才实际运行的
jsp在服务器上执行,将结果输出到客户端显示
·共同点:
Jsp可以完成的功能Servlet也可以完成,但是对于过滤器、监听器只能由Servlet完成
·应用范围:
Jsp用于显示,Servlet用于控制
17.简述Web.xml文件的作用
·属于部署描述符,在整个Java中只要是容器都会存在部署描述符,此部署描述符可以控制整个Web中各个组件的运行状态,也可以配置整个容器的状态,主要配置程序中的一些基本信息和文件等等:
如:
等
18.什么情况下调用doGet()和doPost()方法?
Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost().
19.注意内容
<%@pagelanguage="java"import="java.util.*"
contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
凡是自动生成的代码,都需要注意:
publicstaticvoidmain(String[]args){}