1、1、JSP 页面的基本结构。(1) 普通的 HTML 标记符 符号:(2) JSP 标记指令标记:page、includepageinclude 动作标记:include、forward(跳转标记) 、plugin、useBean 、param 子标记( 用于传递参数 )param 子标记:(3) 变量和方法的声明 在声明的变量整个 JSP 页面有效,与书写位置无关,是成员变量在声明的方法整个 JSP 页面有效,但方法内的变量只在该方法内有效(4) Java 程序片 在 中声明的变量为局部变量,有效范围与书写位置有关(5) Java 表达式 2、JSP 的运行原理以及字节码文件的主要工作。(1
2、) 运行原理当服务器上的 jsp 页面被第一次请求时,该 jsp 会被服务器先转译成一个 java 文件,并编译这个文件生成字节码文件,然后执行字节码文件响应请求。(2) 字节码文件的主要工作1 把 jsp 页面中的 html 标记符号交给客户的浏览器负责显示2 负责处理 jsp 标记,并将有关的处理结果发送到客户的浏览器3 执行“”之间的 java 程序片,并把执行结果交给客户的浏览器显示4 对多个客户同时请求 jsp 时,将 CPU 在多个线程之间快速切换,以保证每个线程都有机会执行字节码文件3、JSP 有哪些内置对象?作用分别是什么?(1) Request:封装用户提交的信息,使用 ge
3、tParameter 方法可以获取用户提交的信息request 常用方法:1) getProtocol()获取用户向服务器提交信息所使用的通信协议。2) getServletPath()获取用户请求的 JSP 页面文件的目录。3) getContextPath()获取用户请求的当前的 web 服务目录。4) getContentLength()获取用户提交的整个信息的长度。5) getMethod()获取用户提交信息的方式,比如 post 或get。6) getHeader(String s) 获取 HTTP 头文件中由参数 s 指定的头文件名字的值。7) getHeaderNames()获取
4、头名字的一个枚举。8) getHeader(String s) 获取头文件中指定头名字的全部值得一个枚举。9) getRemoteAddr()获取用户的 IP 地址。10) getRemoteHost()获取用户机的名称。11) getServerName()获取服务器的名称。12) getServerPort()获取服务器的端口号。13) getParameterNames()获取用户提交的信息体部分中name 参数值的一个枚举。(2) Response:对用户的请求做出动态响应,向用户端发送数据(3) Session:由 JSP 引擎创建,可通过该对象保留链接的有关信息,判别是否为同一用户
5、Session 的生存周期是否关闭浏览器调用 invalidate()方法使得 session 无效session 达到了设置的最长发呆时间 Tomcat 为 30 分钟Session 对象存储数据 Public void setAttribute(String key,Object obj) Public Object getAttribute(String key) Public Enumeration getAttributeNames() Public void removeAttribute(String name)(4) Application:由服务器创建,该对象对访问该服务器的
6、所有用户共享,不同的 web 服务目录下,application 不同(5) Out:用来向用户端输出数据4、什么是 Javabean? Javabean 有哪些特征?在 Javaweb 开发中有什么作用?(1) JavaBean 是一个可重复使用的软件组见,一种 Java 类,通过封装属性和方法成为某种功能或处理某个业务的对象(2) 特征:1 可实现代码的重复利用2 易编写,易维护,易使用3 可以在任何安装了 Java 运行环境的平台使用,而不需要重新编译。(3) 作用:处理数据,储存数据,有效的分离静态部分和动态部分5、保存 bean 的字节码创建 bean、在 web 服务目录下建立子目
7、录结构 :WEB-INFclasses、根据类的包名在 classes 下建相应子目录,如 tom.jiafei,则目录结构为 tomjiafei将 bean 的字节码文件复制到WEB-INFclassestomjiafei 中6、bean 的加载原理当 JSP 页面使用 jsp 动作标记 useBean 加载一个 bean 时,jsp 引擎将首先根据 jsp 动作标记 useBean 给出的 bean 的 id 名字以及 scope 给出的使用范围,在下一个同步块中查找 jsp 引擎内置 pageContent 对象中是否含有这样的 bean。如果这样的 bean 存在,jsp 引擎就分配这
8、样的 bean 给用户,如果在 pageContent 中没有查找到 jsp 动作标记要求的 bean,就根据 class 制定的字节码创建一个 useBean 要求的bean,并将所创建的 bean 添加到 pageContent 内置对象中。7、bean 的有效范围(1)scope 取值 page,只在当前页面有效,直到页面执行完毕(2)scope 取值 session,只在用户的 session(会话)期间(3)scope 取值 request,只在当前页面有效,直到响应结束,略长于 page(4)scope 取值 application,直到服务器关闭。共享,修改会影响其他用户8、获取
9、或修改 bean 的属性使用动作标记 getProperty、setProperty 获取或修改9、如果表单提交的信息中有汉字,接收该信息的页面应该做怎样的处理?(1) Request 设置编码request.setCharacterEncoding(“gb2312“);(2) 对信息重新编码String str=request.getParameter(“message”);Byte b=str.getBytes(“ISO-8859-1”); Str = new String(b);10、include 指令标记和 include 动作标记的不同。(1)include 指令标记:语法格式:作
10、用:在 JSP 页面出现该指令的位置处,静态插入一个文件。 (可重复使用)include 指令标记是在 编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前的 JSP 页面,其优点是页面的执行速度快;(2) include 动作标记:语法格式:或include 动作标记是在 JSP 页面运行时 才处理文件,被处理的文件在逻辑和语法上 独立于当前 JSP 页面,其优点是可以使用 param 子标记更灵活的处理所需要的文件,缺点是执行速度要慢些。11、MVC 模式的工作原理,JSP 技术中 MVC 模式的具体实现。模型-视图- 控制器模型:用于储存数据的对象视图:向控制器提交所需的数据
11、、显示模型中的数据控制器:负责具体的业务逻辑操作JSP 技术中 mvc 的实现:模型:一个或多个 javabean 对象,用于存储数据。视图:一个或多个 jsp 页面,像控制器提交必要的数据和显示数据控制器:一个或多个 servlet 对象,根据视图提交的要求进行数据处理操作,并将有关结果储存到 JavaBean 中,然后 servlet 使用转发或重定向的方式请求视图中的某个 jsp 页面显示数据。12、什么是 servlet?servlet 的生命周期。(1) 在服务器端创建能响应用户请求的对象。(2) 初始化 Servlet。Servlet 第一次被请求加载时,服务器初始化这个 serv
12、let新诞生的 servlet 再调用 service 方法响应用户的请求服务器关闭时,调用 destroy 方法销毁 servlet13、HttpServletResponse 类的 sendRedirect 方法和 RequestDispatcher类的 forward 方法有何不同?(1) sendRedirect 浏览器地址改变,重定向,无法使用 request获取用户提交的数据(2) forward 浏览器地址不改变,转发,可以使用 request 获取用户提交的数据14、假设创建 servlet 的类是 tom.jiafei.Dalian,创建的 servlet 对象的名字是 my
13、servlet,应当怎样配置 web.xml 文件?myservlettom.jiafei.Dalianmyservlet/myservlet15、采用 MVC 模式实现会员注册;当新会员注册时,该模板要求用户必须输入会员名,密码信息,否则不允许注册,注册成功返回登录页面 login.jsp(不需要编写) 。用户的注册信息被存入数据库的member 表中。具体要求如下:a) 写出注册页面表单代码,要求详细代码。b) 编写 Servlet 类处理控制流程。c) 并写出 Servlet 部署文件 web.xml。d) 编写 Javabean 文件描述用户的注册信息,负责连接数据库,判断用户名是否存
14、在以及保存注册数据。a)register.jsp form 表单b)Registerservlet.java(注册功能的 servlet)public class Registerservlet extends HttpServlet public void init(ServletConfig config) throws ServletException super.init(config);public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(“utf-8“);String username = request.getParameter(“username“);String userpass = request.getParameter(“userpass“);User user = new User();