第06章JSP课后习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章Servlet核心技术
习题答案
1.Servlet都有哪些功能?。
答案:
Servlet最常见的功能包括以下几种:
●基于客户端的响应,给客户端生成并返回一个包含动态内容的HTML页面。
●可生成一个HTML片段,并能将其嵌入到现有HTML 页面中。
●能够在其内部调用其它的Java资源并与多种数据库进行交互。
●可同时与多个客户机进行连接,包括接收多个客户机的输入以及并将结果返回给多个客户机。
●在不同的情况下,可将服务器与Applet的连接保持在不同的状态。
●对特殊的处理采用MIME类型过滤数据。
●将定制的处理提供给所有服务器的标准例行程序。例如,Servlet可以修改如何认证用户。
2.使用哪个方法可获取用户提交的表单中的数据?
答案:
可通过ServletRequest接口或其子接口HttpServletRequest提供的getParameter(String name)方法获取表单中的数据,其中参数name是表单属性的名称。
3.使用哪个方法可将数据保存到会话中?
答案:
HttpSession对象的setAttribute(String name,Object value)方法通过绑定一对名字/值数据,可将相关数据保存到当前会话中,参数name是绑定到会话中的属性名称,参数value是属性的值。
4.如何在Servlet中进行异常处理?
答案:
在Servlet中,使用下面两种处理异常的方式:
●在try/catch语句的catch语句块中直接生成并输出异常信息的页面,或者将异常转发到异常处理的Servlet或JSP页面中。
●在web.xml文件中通过
5.使用Servlet做一个用户登录实例。
实例内容:当请求Servlet时,出现一个包含文本框、密码框和提交按钮的界面,当输入用户名和密码,单击【登录】按钮后,将用户的信息放入HttpSession中,并输出欢迎当前用户登录的信息。
答案:
(1)创建一个Web工程,名称为login。
(2)在工程的sunyang包下创建一个Servlet类LoginServlet.java,该类用来输出登录页面和欢迎用户登录的信息。类LoginServlet的代码如下:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginServlet extends HttpServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setCharacterEncoding("GBK"); //设置响应的编码类型为GBK
PrintWriter out=resp.getWriter(); //获取输出对象
out.println("");
out.println("
");out.println("
out.println("");
out.println("
");HttpSession session=req.getSession();//获取HttpSession实例
Boolean isLogin=(Boolean)session.getAttribute("isLogin");
if(isLogin==null){
isLogin=false;
}
String name=req.getParameter("username");//获取表单上的用户名
String password=req.getParameter("password");//获取表单上的密码
if(isLogin==true){
name=(String)session.getAttribute("name");
out.println("
欢迎"+name+"登录
}else if(name!=null&&password!=null){
session.setAttribute("name", name);//把用户名保存在HttpSession中
session.setAttribute("password", password);//把密码保存在HttpSession中
//把判断用户是否登录的字段保存在HttpSession中
session.setAttribute("isLogin", true);
out.println("
欢迎"+name+"登录
}else{
out.println("
用户登录
");out.println("
");}
out.println("");
out.println("");
}
}
(3)在web.xml中配置LoginServlet,配置的代码如下:
xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd">
(4)发布并运行程序,如下图所示: