您的位置:首页 > 运维架构

Servlet程序及Servlet的应用

2017-09-11 19:27 204 查看
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

Servlet的配置:

方式一:

<servlet></servlet>配置类文件
<servlet-mapping></servlet-mapping>配置映射地址



方式二:

使用注解的方式配置Servlet
使用注解WebServlet



Servlet的生命周期:



生命周期的各个阶段:



注:实例化和初始化只调用一次,请求处理可以多次

Servlet程序:
继承HTTPServlet类,重写doGet()、doPost()方法
需要在web.xml中配置Servlet
Servlet中可以写HTML标签
实例:
public class HelloServlet extends HttpServlet {
//响应get请求
@Override
//其中req就代表JSP中的request对象,reap就代表response对象
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
//判断是否能够登录
String uname = req.getParameter("uname");
String pwd = req.getParameter("pwd");
//设置编码格式
//resp.setContentType("textml;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
//使用PringtWrite打印一个网页
PrintWriter pw = resp.getWriter();
if("admin".equals(uname)&&"123456".equals(pwd)){
//登录成功
pw.print("<h1>欢迎您,"+uname+"</h1>");
}else {
//登录失败
pw.print("<span style=\"color:red\">"+"登录失败!"+"</span>");
}
pw.close();
}
}
在Servlet中使用中文,用Tomcat运行时可能会有编码异常,解决方法:

编码方式需要修改的地方:

1.Tomcat中的Servlet.xml

2.response.setcontenttype/response.setcharacterencoding

3.项目、类文件、JSP右键properties source必须是utf-8
页面404:

web.xml中的路径前必须有/,整个项目都是404

form action相对路径(先直接访问Servlet页面,如果能访问action)
Servlet中的ServletConfig接口:

在Servlet初始化过程中获取配置信息
一个Servlet只有一个ServletConfig对象
getInitParameter获取初始化参数(获取当前这个Servlet)
ServletConfig就是JSP内置对象config的原类型
配置初始化参数两种方式:
1. web.xml(<init-param>)
2. 注解@WebInitParam(name,value)
ServletConfig接口的常用方法



ServletConfig.java
out.println("  <BODY>");
//获取对应Servlet的配置信息
ServletConfig config = getServletConfig();
//getInitParameter获取初始化参数
String info = config.getInitParameter("info");
out.println("init param info is "+info);
out.println("  </BODY>");

Servlet中的doGet()和doPost()方法
使用doXxx()接收用户请求
doGet():用户使用get方式提交请求时调用
doPost():用户使用post方式提交请求时调用

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息