Servlet基础
2016-03-24 21:17
344 查看
写一个servlet共有3步:
1.继承HttpServlet
2.重写doGet()和doPost()方法
3.在Web.xml中注册Servlet
第一步:完成index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>Servlet</h1>
<hr>
<a href="Servlet/HelloServlet">Get方式</a>
<form action="Servlet/HelloServlet" method="post">
<input type="submit" value="Post" />
</form>
</body>
</html>
第二步:编写Servelet类
package Servlet;
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 com.sun.mail.iap.Response;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter pw= resp.getWriter();
pw.println("woaini");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter pw= resp.getWriter();
pw.println("woaini2");
}
}
这里ref默认是get请求,form表单用的post请求
第三步:配置xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Servlet</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>Servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/Servlet/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
这一步要重点说,两个servlet-name要一样,url-pattern中的值要与index.jsp中一样
其实我们用eclipse可以直接配置。
Servlet的执行原理:
以超链接为例:通过href中的servlet地址在servlet-mapping中找到对应的url-pattern,获得其servlet-name,再通过这个名字在servlet中找到servlet-calss
进入这个类,执行doGet方法
servlet的生命周期:
接受客户端请求,判断servlet实例是否存在,存在直接调用service方法,不存在则创建实例后调用init方法后且调用service方法
tomcat加载servlet有3种情况:
1.初始化时装载
在web.xml中,在servlet标签之中加入<loadon-startup></loadon-startup>数字越小,优先级越高
2.在第一次访问servlet时
3.更改servlet类时
在servlet如何过去9打内置对象
out-------resp.getWriter
request------service中的req参数
response----service中的res参数
session------req.getSession
application----getServlletContext
exception-----Throwable
page--------this
pageContext---------pageContext
Config------------getServletConfig
1.继承HttpServlet
2.重写doGet()和doPost()方法
3.在Web.xml中注册Servlet
第一步:完成index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>Servlet</h1>
<hr>
<a href="Servlet/HelloServlet">Get方式</a>
<form action="Servlet/HelloServlet" method="post">
<input type="submit" value="Post" />
</form>
</body>
</html>
第二步:编写Servelet类
package Servlet;
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 com.sun.mail.iap.Response;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter pw= resp.getWriter();
pw.println("woaini");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter pw= resp.getWriter();
pw.println("woaini2");
}
}
这里ref默认是get请求,form表单用的post请求
第三步:配置xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Servlet</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>Servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/Servlet/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
这一步要重点说,两个servlet-name要一样,url-pattern中的值要与index.jsp中一样
其实我们用eclipse可以直接配置。
Servlet的执行原理:
以超链接为例:通过href中的servlet地址在servlet-mapping中找到对应的url-pattern,获得其servlet-name,再通过这个名字在servlet中找到servlet-calss
进入这个类,执行doGet方法
servlet的生命周期:
接受客户端请求,判断servlet实例是否存在,存在直接调用service方法,不存在则创建实例后调用init方法后且调用service方法
tomcat加载servlet有3种情况:
1.初始化时装载
在web.xml中,在servlet标签之中加入<loadon-startup></loadon-startup>数字越小,优先级越高
2.在第一次访问servlet时
3.更改servlet类时
在servlet如何过去9打内置对象
out-------resp.getWriter
request------service中的req参数
response----service中的res参数
session------req.getSession
application----getServlletContext
exception-----Throwable
page--------this
pageContext---------pageContext
Config------------getServletConfig
相关文章推荐
- iOS事务的基本概念
- swust oj 2474 F(k)
- 八皇后问题(python版理解)
- Java Calendar 类的时间操作
- gcc 编译器常用的命令行参数一览
- 2015-2016 下半学期 第二周 训练(2)
- 杭电ACM1218——Blurred Vision
- ACM之马踏棋盘(DFS)
- 四位辉光管时钟-学长毕设
- hdu 1007 Quoit Design (最近点对)
- Apache 配置二级域名匹配目录及多个站点配置 +阿里云服务器如何解析添加二级域名
- LightOJ 1073 DNA Sequence (状压DP+字符串比较)
- hdu3336kmp,dp
- 解决Linux Fedora 虚拟机root用户登录提示"鉴定故障"的问题
- 垂直,水平居中代码,自用
- 5-31 字符串循环左移
- LeetCode#103. Binary Tree Zigzag Level Order Traversal My Submissions Question
- Cmake系列:如何使用CMake编译自己项目
- C#——判断成绩是否通过
- git基础快速入门