java web期末复习要点.docx
JavaScript是基于对象的语言。JavaScript的基本语法: 包含了一些变量及函数的声明操作,所有的JavaScript代码都是在HTML代码中编写的,使用 <script>标记完成。JavaScript中的所有变量都使用var关键字声明,变量的类型由赋给的具体内容来决定。HTML语句1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111链接<A HREF=”链接地址”></A>超链接表格元素<TABLE>和</TABLE>显示表格<TR>和</TR>表格的行显示<TD>和</TD>表格的列显示表单元素<FORM NAME>=”ACTION=”URL”METHOD=”GET|POST”>和</FORM>显示表单<INPUT TYPE=”TEXT”>普通输入文本<INPUT TYPE=”PASSWORD”>密码输入框<INPUT TYPE=”CHECKBOOK”>复选框<INPUT TYPE=”RADIO”>单选按钮<INPUT TYPE=”IMAGE”>将图片设置为提交按钮JavaScript中的各个操作都有相应的事件支持,主要围绕函数展开,产生事件后可以调用相应函数进行处理,所有事件以 onXxx 命名。JavaScript中程序的三种结构:顺序结构:程序代码从头到尾执行。分支结构:中间加入若干个判断条件,根据判断条件来决定代码的执行。循环结构:将一段代码体重复执行。在JSP中的3中Scriptlet代码:第一种Scriptlet <% %>:可以定义局部变量,编写语句第二种Scriptlet <%!%>:可以定义全局变量、方法、类。第三种Scriptlet <%=%>:输出一个变量或一个具体的常量跳转指令使用<jsp:forward>指令,将一个用户的请求(request)从一个页面传递到另一个页面,即完成跳转的操作。不传递参数:<jsp:forward page=”要包含的文件路径|<%=表达式%>”/ >传递参数:<jsp:forward page=”要包含的文件路径|<%=表达式%>”/ ><jsp: param name =”参数名称” value = “参数内容”/></jsp: forward>JSP中的包含语句:一种是静态包含,属于先包含后处理;另一种是动态包含,属于先处理后包含。使用<jsp:forward>可以执行跳转操作,跳转后的地址栏不改变,所以是服务器端跳转,此语句属于标签指令,标签指令在最后一定要有完结。JSP内置对象的4中属性范围Page:只在一个页面中保存属性,跳转之后无效Repuest:只在一次请求中保存属性,服务器跳转后依然有效Session: 在一次会话范围中保存,无论何种跳转都可以使用,但新开浏览器无法使用。Application: 在整个服务器中保存,所有用户都可以使用。9个内置对象:pageContext request response session application config out page exception 几种重要对象的功能:pageContext对象:表示一个JSP页面的下文。request对象:接收客户端发送而来的请求信息。Response对象: 对客户端的请求进行回应,将Web服务器处理后的结果发回给客户端。Session对象:完成用户的登录、注销等。Application对象:用来存储和获取可以被所有用户之间进行共享的信息Config对象:取得一些初始化的配置信息。Out对象:完成页面的输出操作,使用println()或print()方法输出信息。属性的操作方法:设置属性: public void setAttribute(String name ,Object value)。取得属性:public Object getAttribute(String name)。删除属性:public removeAttribute(String name)。这些属性在操作时所有的属性名称都使用String进行接收,所有的属性内容使用Object进行接收,可以保存任意的对象,在取得属性时要根据取得的类型进行向下转型操作。JavaBean 标签: <jsp:useBean>:<jsp:useBean id=”实例化对象名称scope=“保存范围”class=“包.类名称”/> <jsp:setProperty>:NO.类型语法格式1自动匹配<jsp:setProperty name=”实例化对象名称(id)” Property=”*”/>:2指定属性<jsp:setProperty name=”实例化对象名称(id)” Property=”属性名称”/>:3指定参数<jsp:setProperty name=”实例化对象名称(id)” Property=”属性名称”param=”参数名称”/>:4指定内容<jsp:setProperty name=”实例化对象名称(id)” Property=”属性名称”value=”内容”/>: <jsp:getProperty>:<jsp:getProperty name=”实例化对象名称(id)” Property=”属性名称”/>:JavaBean 标签操作的简单类的开发要求:1. 所有的类必须放在一个包中,在Web中没有包的类是不存在的。2. 所有的类必须声明为Public class,这样才能被外部所访问。3. 类中所有的属性都必须封装,即使用private声明。4. 封装的属性如果需要被外部所操作,则必须编写对应的setter、getter方法。一个JavaBean中至少存在一个无参构造方法,此方法为JSP中的标签所使用。Servlet程序是运行在服务器端的一段Java程序,其生命周期将受Web容器的控制。生命周期包括 加载程序、初始化、服务、销毁、卸载。Servlet生命周期控制的3个方法:Init()Service() (doGet()、doPost()Destroy()MAV设计模式:强制性地使应用程序的输入、处理和输出分开。分为3个核心层: 模型层、显示层、控制层。显示层(View):主要负责接收Servlet传递的内容,并且调用JavaBean,将内容显示给用户。控制层(Controller):主要负责所有的用户请求参数,判断请求参数是否合法。模型层(Model):完成一个独立的业务操作组件,一般以JavaBean或者EJB的形式进行定义的。Servlet的特点:是一个供其他Java程序调用的类,不能独立运行。它的运行完全由Servlet引擎来控制和调度。Servlet引擎是一种容器程序,负责管理和维护所有Servlet对象的生命周期。Servlet的加载执行流程,以及如何接收客户端发送的数据和如何将数据传输到客户端等具体的底层事务,都由Servlet引擎来实现。Servlet用于读取Web浏览器传递给web服务器的参数和生成web服务器返回给web浏览器的动态网页文档内容;也能获取web浏览器发送的HTTP请求消息中的各个请求头和请求行信息。Servlet的运行过程:1. 接收到访问某个Servlet的HTTP请求之后,Servlet引擎首先检查是否已经安装并创建了该Servlet的实例对象。如果已装载并创建,Servlet引擎则直接执行步骤4,否则,执行步骤2.2. 装载并创建Servlet的一个实例对象。3. 调用Servlet实例对象的init()方法,以便执行Servlet的一些初始化工作。4. 创建一个用于封装HTTP请求消息的HttpServletRepuest对象和一个代表HTTP响应消息的HttpServletRepuest对象,然后调用Servlet的servive()方法并将请求和响应对象作为参数传递进去。5. 在一个Web应用程序被停止或重新启动之前,Servlet引擎将卸载其中运行的Servlet。代码4 登录检查servletpackage com.servlets;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.beans.User;import com.beans.userHandler;public class LoginCheckServlet extends HttpServlet protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException doGet(request,response); protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException /得到输入的用户名String username = request.getParameter("username");/得到输入的密码String password =request.getParameter("password");/封装成User对象User user = new User();user.setUsername(username);user.setPassword(password);if(username != null && password != null)/实例化userHandleruserHandler userhandler = new userHandler();/调用userhandler的checkLogin方法boolean isSuccess = userhandler.checkLogin(user);userhandler.CloseSql();/根据返回结果进行视图控制处理if(isSuccess)/得到session对象HttpSession session = request.getSession();session.setAttribute("username",username);/向index.jsp进行跳转(服务器端跳转)RequestDispatcher requestDispatcher =request.getRequestDispatcher("index.jsp");requestDispatcher.forward(request, response);Else /向showerror.jsp进行跳转(服务器端跳转)RequestDispatcher requestDispatcher =request.getRequestDispatcher("showerror.jsp");requestDispatcher.forward(request, response);else/向showerror.jsp进行跳转(服务器端跳转)RequestDispatcher requestDispatcher =request.getRequestDispatcher("showerror.jsp");requestDispatcher.forward(request, response); 代码5 用户注册servletpackage com.servlets;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.beans.User;import com.beans.userHandler;public class RegisterServlet extends HttpServlet protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException doGet(request,response); protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding("GBK");/得到输入的所有用户注册信息String username = request.getParameter("username");String password = request.getParameter("password");String realname =request.getParameter("realname");String gender = request.getParameter("gender");String age_str = request.getParameter("age_str");int age = Integer.parseInt(age_str);/封装成一个User对象User user = new User(username, password, realname, gender, age);response.setContentType("textml;charset=gb2312"); PrintWriter out = response.getWriter();if(username != null && password != null)/实例化userHandleruserHandler userhandler = new userHandler();/调用userhandler的addUser方法boolean isSuccess = false;try isSuccess = userhandler.addUser(user); catch (SQLException e) e.printStackTrace();userhandler.CloseSql();if(isSuccess)String contextpath = request.getContextPath();out.println("<SCRIPT language=javascript>alert('注册成功!');" +"window.location='"+contextpath+"/login.htm'</script>");else String contextpath = request.getContextPath();out.println("<SCRIPT language=javascript>alert('注册失败!');" +"window.location='"+contextpath+"/register.htm'</script>"); elseresponse.sendRedirect(request.getContextPath()+"/showerror.jsp");第一题.Html登陆界面制作<html><head> <title>登录界面</title><body><center><h1>登录操作</h1><hr><form ><table border=”1”><tr><td colspan=”2”>用户登录</td></tr><tr><td>用户ID:</td><td><input type="text" name="id" ></td></tr><tr><td>密 码:</td><td><input type="password" name="password"></td></tr><tr><td colsoan=”2”><input type="button" value="登 录" > <input type="reset" value="重 置"/></td></tr> </table></form></center></body></html>代码来自书上P118第二题 html字体显示<html><head> <title>字体显示</title></head><body><form> <table border="1" cellpadding="0" cellspacing="1"> <tr> <td colspan="6" style="font-size: 45px; padding: 15px 0">字体显示</td> </tr> <tr align=center> <td style="font-weight: bold">粗体</td> <td style="font-style: italic">斜体</td> <td style="text-decoration: underline">下划线</td> <td style="text-decoration: line-through">中划线</td> <td>90°</td> <td>H<sub>2</sub>O</td> </tr> </table></form></body></html>自己写+网上查找的代码3、 简述JSP中任意5个内置对象的名称与作用。(15分)答案来自百度百科(背5个就行了)(1)request对象客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。(2)response对象response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。(3)session对象session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。(4)out对象out对象是JspWriter类的实例,是向客户端输出内容常用的对象(5)page对象page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例(6)application对象application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。(7)exception对象exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象(8)pageContext对象pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。(9)config对象config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)4、简述内置对象中的4种属性范围及意义。(12分)pageContext:只在一个页面中保存属性,跳转后无效。Request:只在一次请求中保存,服务器跳转后依然有效。Session:在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用。Application:在整个服务器上保存,所有用户都可以使用。5、简述Servlet程序的处理步骤。(10分)当你用JSP或HTML提交表单的时候(点submit),浏览器会将这个请求封装成一个request,发送到服务器端(Tomcat端),服务器端接收到这个request请求之后,交由Servlet来处理,将处理后的结果,封装成response返还给浏览器。 Tomcat根据WEB-INF下面的web.xml来实例化Servlet,一般来讲,Servlet只被实例化一次,实例化之后,多个线程共享。6、使用MVC的设计模式,设计一个用户注册程序,利用JSP,Servlet 和 JavaBean组件进行实现。要求:1、 简述MVC的组成,并说明JSP,Servlet 和 JavaBean组件分别可以在MVC架构中充当什么功能?2、给出JSP,Servlet 和 JavaBean 组件的关键代码。答:MVC即Model-View-Controller,JSP 负责显示界面 相当于MVC中的 View(视图层),Servlet 负责历程控制 相当于MVC中的 Controller(控制层),JavaBean 负责功能 相当于MVC中的 Model(数据层)。用户注册:jsp页面 zhuce.jsp: <HTML><BODY ><Font size=3> 请注册: <FORM action="zhuce1.jsp" method=post> <table border=1> <tr><td><font size=2>用户名:</font></td> <td><Input type="text" name="username"></td> </tr> <tr><td><font size=2>密码:</font></td> <td><Input type="password" name="password"></td> </tr> <tr><td><font size=2>性别:</font></td> <td><Input type="text" name="sex"></td> </tr> <tr><td><font size=2>年龄:</font></td> <td><Input type="text" name="age"></td> </tr> </table> <BR><Input type="submit" name="b" value="注册"> </FORM> </Font></BODY></HTML> zhuce1.jsp: <%page pageEncoding=”gbk”%> <%page import=”java.sql.*”%> <% String username=request.getParameter("username");/获取客户提交的信息String password=request.getParameter("password");/获取客户提交的信息String sex=request.getParameter("sex"); /获取客户提交的信息String ages=request.getParameter("age"); int age=0 try byte bb=sex.getBytes("ISO-8859-1"); sex=new String(bb); age=Integer.parseInt(ages); catch(Exception e) if(username.length()=0|password.length()=0) response.sendRedirect("zhuce.jsp"); /重定向 try Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); catch(Exception e) String insertCondition="INSERT users VALUES( '"+username+ "', '"+password+"','"+sex+"'',"+age+")" String str="" Connection con; Statement sql; try String uri="jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=student" con=DriverManager.getConnection(uri,"sa","sa"); sql=con.createStatement(); int m=sql.executeUpdate(insertCondition); if(m!=0) str="注册成功" else str="注册失败" con.close(); catch(SQLException e) str=e.toString(); out.print(str); %>用户注册servletpackage com.servlets;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.beans.User;import com.beans.userHandler;public class RegisterServlet extends HttpServlet protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException doGet(request,response); protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding("GBK");/得到输入的所有用户注册信息String username = request.getParameter("username");String password = request.getParameter("password");String realname =request.getParameter("realname");String gender = request.getParameter("gender");String age_str = request.getParameter("age_str");int age = Integer.parseInt(age_str);/封装成一个User对象User user = new User(username, password, realname, gender, age);response.setContentType("textml;charset=gb2312"); PrintWriter out = response.getWriter();if(username != null && password != null)/实例化userHandleruserHandler userhandler = new userHandler();/调用userhandler的addUser方法boolean isSuccess = false;try isSuccess = userhandler.addUser(user); catch (SQLException e) e.printStackTrace();userhandler.CloseSql();if(isSuccess)String contextpath = request.getContextPath();out.println("<SCRIPT language=javascript>alert('注册成功!');" +"window.location='"+contextpath+"/login.htm'</script>");else String contextpath = request.getContextPath();out.println("<SCRIPT language=javascript>alert('注册失败!');" +"window.location='"+contextpath+"/register.htm'</script>"); elseresponse.sendRedirect(request.getContextPath()+"/showerror.jsp"); JavaBean值对象用于数据的传递package com.beans;public class User private String username;private String password;private String realname;private String gender;private int age;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() return password;public void setPassword(String password) this.password = p