Presentation is loading. Please wait.

Presentation is loading. Please wait.

基于JSP搭建Web应用程序.

Similar presentations


Presentation on theme: "基于JSP搭建Web应用程序."— Presentation transcript:

1 基于JSP搭建Web应用程序

2 第三章 使用JSP处理客户端请求

3 课程回顾 什么是JSP技术? JSP的执行流程的3个阶段是什么? JSP页面的构成元素有哪些? JSP访问数据库的步骤是什么?

4 学习内容 处理表单请求 内置对象

5 能力目标 掌握表单的请求处理 掌握在JSP中实现客户端验证 掌握JSP常用内置对象的用法 使用转发与重定向

6 为什么需要HTML表单? HTML表单是用户和系统交互信息的重要手段。

7 HTML表单提交方式 <form action=“**.jsp” method=“post/get” >

8 HTML表单处理过程 Login_action.jsp: Login.jsp;
<form action=“login.jsp” Method=“post”> 账号:<input type=“text” name=“userName”/> 密码:<input type=“password” name=“pwd”/> </form> Login_action.jsp: String username=request.getParament(“userName”); String password=request.getParament(“pwd”); If(username.equals(“admin”)&&password.equals(“admin”)){ Response.sendRedirect(“login_success.jsp”); }else{ Response.sendRedirect(“login_success.jsp”) }

9 什么是JSP内置对象 JSP内置对象是 Web 容器创建的一组对象 JSP内置对象的名称是JSP 的保留字
JSP内置对象是可以直接在JSP页面使用的对象,无需使用“new”获取实例,不需要声明和实例化 没有出现new关键字,但却可以使用request对象 <% String username=request.getParameter(“username”); String password=request.getParameter(“pwd”); %>

10 JSP常用内置对象

11 JSP内置对象out out输出对象 out对象的常用方法:
out对象被封装为javax.servlet.jsp.JspWriter类的对象,在实际应用中out对象会通过JSP容器变换为java.io.PrintWriter类的对象。 out对象的常用方法: out.print(输出数据):输出数据到页面 out.close();关闭输出流

12 out输出对象 out对象的print()方法: out对象的print()方法是把数据输出到页面。
输出的数据可以是整型、字符型、布尔型等。print()方法既可输出单纯的文字,例如:“你好”,也可以输出HTML标记。 <% out.print("<h1>★★★★★out.print()方法示例★★★★</h1>"); out.print("<font size=7>我是一只</font>"); out.print("<b>"); out.print("<font size=7>小</font>"); out.print("<font size=6>小</font>"); out.print("<font size=1>小</font>"); out.print("</b>"); out.print("<font size=7>鸟<p>"); out.print("想要<sup>飞</sup>也<sup>飞</sup>不<sub>高</sub></font>"); out.print("<h1>======out.print()方法示例======</h1>"); %>

13 out输出对象 out对象的close()方法:
out对象的close()方法是关闭输出流。如果out对象的输出流已经关闭,则不能再向页面输出数据。 <% for(int i=1;i<=7;i++) { for(int j=10-i;j>=1;j--) out.print(" "); } for(int j=1;j<=2*i-1;j++) out.print("★"); out.print("<br/>"); out.print("<br/>ok"); out.print("输出流已经关闭!"); out.close();//关闭输出流 out.print("再次输入数据,该数据不会显示"); %>

14 JSP内置对象request request对象是最常用内置对象了,它包含客户端请求信息,主要用来处理客户端请求。

15 JSP内置对象request 可以在JSP页面中直接使用request对象,通过它的方法来获取请求相关数据。 request对象常用方法 :
方 法 名 称 方    法   描    述 String getParameter(String name) 根据页面表单元素名称获取请求页面提交的数据 String[] getParameterValues(String name) 获取页面请求中有重名表单的元素用户的请求数据. getRequestDispatcher(String path) 返回一个RequestDispatcher对象,该对象的forward方法可以把请求转发到指定资源. Object getAttribute(String name) 返回由name指定的属性值 void setAttribute(String name,Object obj) 设置名字为name的request参数值

16 JSP内置对象request Regist.jsp:
<form action=“register_action.jsp” method=“post”> 账号:<input type=“text” name=“username”/><br/> 密码:<input type=“passwrod” name=“userpwd”/><br/> 邮箱:<input type=“text” name=“ ”/><br/> 地址:<input type=“text” name=“address”/><br/> 爱好: <input type=“checkbox” name=“hobby” value=“read”/>阅读<br/> <input type=“checkbox” name=“hobby” value=“programe”/>编程<br/> <input type=“checkbox” name=“hobby” value=“sport”/>运动<br/> <input type=“checkbox” name=“hobby” value=“sing”/>唱歌<br/> <input type=“submit” value=“注册”/> </form> Regist_action.jsp: <% String name=request.getParameter(“username”); String pwd=request.getParameter(“userpwd”); String =request.getParameter(“ ”); String =request.getParameter(“address”); String[] hobbys=request.getParameterValues(“hobby”); …… %> Request.SetCharacterEncoding(“GBK”);

17 JSP内置对象response 与内置对象request对应的是response对象,response对象用于响应客户端请求并向客户端输出信息。 工作原理:

18 JSP内置对象response response对象常用方法: 方 法 名 称 方 法 描 述
方 法 名 称 方    法   描    述 void sendRedirect(String name) 发送一个响应给浏览器,指示其请求另一个URL void setContentType(String name) 设置响应生成的内容的类型和字符编码 void setCharacterEncoding(String cahrset) 设置响应使用的字符编码格式

19 JSP内置对象response 注意地址栏
If(“admin”.equals(username)&&”admin”.equals(pwd)){ //成功 Response.sendRedirect(“login_success.jsp”); }else{ //失败 Response.sendRedirect(“login_error.jsp”); } 注意地址栏 Login_success.jsp: <body> <% String username=request.getParameter(“username”); %> 欢迎:<%=username%>,登陆成功! </body>

20 转发和重定向 If(“admin”.equals(username)&&”admin”.equals(pwd)){ //成功
Request.getRequestDispatcher(“login_success.jsp”).forward(request,response); }else{ //失败 Response.sendRedirect(“login_error.jsp”); } 注意地址栏

21 页面的转发 转发的作用:在多个页面交互过程中实现请求数据的共享 转发的实现: RequestDispatcher对象 forward()方法
<% RequestDispatcher rd=request.getRequestDispatcher("welcome.jsp"); rd.forward(request,response); %> 将当前接收的用户请求,发送给服务器的其他资源使用

22 Response.sendRedirect(“error.jsp”);
页面的重定向 重定向的作用:相当于客户端重新向服务器请求一个地址链接,上次请求中得数据将随之丢失 重定向的实现: sendRedirect();方法 <% Response.sendRedirect(“error.jsp”); %>

23 转发与重定向的比较 语法: 转发: request.getRequestDispatcher(pageURL).forward();
重定向: response.sendRedirect(pageURL);

24 转发与重定向的比较 转发是在服务器端发挥作用,通过forward方法将提交信息在多个页面间进行传递。
转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址 重定向是在客户端发挥作用,通过请求新的地址实现页面转向 重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地址

25 本章总结 JSP处理表单请求的模式 内置对象就是在JSP中可以之间使用的对象,它们由Web容器进行实例化,而不需要开发人员进行声明和实例化。
request对象和response对象的使用 转发和重定向的区别

26


Download ppt "基于JSP搭建Web应用程序."

Similar presentations


Ads by Google