【JAVA WEB】学习笔记——Servlet入门

WEB服务器入门

常用的WEB服务器

  • IIS
  • Apache
  • Tomcat

常用的动态网页技术

  • CGI(Common GateWay Interface)
  • API常用的有(NSAPI,ISAPI)
  • ASP(Active Server Page)->VBScript,ASP.NET->C#
  • PHP(Personal Home Page)
  • JSP/Servlet(Java Server Page)

服务器分类

  • WEB服务器 Apeche
  • 应用服务器 IIS,websphere(EJB等程序)
  • Servlet 容器 Tomcat

Tomcat介绍

  • Tomcat启动与停止
    Tomcat启动需要使用JAVA_HOME或JRE_HOME环境变量
  • Tomcat的目录结构
    • bin:存放各种平台下启动和关闭Tomcat的脚本文件
      startup.bat:是Windows下启动Tomcat的文件
      shutdown.bat:是关闭Tomcat的文件
  • lib:存放tomcat服务器和所有web应用都能访问的JAR
  • work:web应用工作目录,JSP编译后的class,缓存等
  • temp:临时文件夹,tomcat运行时候存放临时文件
  • log:存放tomcat的日志文件
  • webapps:web应用的发布目录,把Java开发的web应用(或war文件)放入这个目录,就可以通过tomcat访问
  • conf:tomcat的配置文件,最重要的是server.xml

Java EE 规范

Web Application Name
+WEB-INF
|–web.xml (该web App的配置文件)
|–lib (该web App用的jar类库)
|–classes (存放编译好的servlet)
+META-INF (该Web App的上下文信息,符合Java EE标准)

Servlet

servlet简介

  • Servlet是向服务器小应用程序
  • 用来完成B/S架构下,客户端请求的相应处理
  • 平台独立,性能优良,能以多线程方式运行
  • Servlet API为Servlet提供了统一的编程接口
  • Servlet要在容器中运行
  • 常见的Servlet容器:
    • Tomcat
    • Jetty/Resin

HelloWorldDemo

在HelloWorldServlet项目创建如下Servlet,后放入Tomcat开启服务器

public class HelloWorldServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub

        System.out.println("HelloWorldServlet doGet() ");
        PrintWriter out = resp.getWriter();
        out.println("Hello Servlet");
        out.flush();
        out.close();

    }
}

在浏览器打开
http://localhost:8080/Servlet_HelloWorld/servlet/HelloWorldServlet
显示:Hello Servlet
服务器端:HelloWorldServlet doGet()

收获:
1. 所有资源是放在服务器上,由服务器管理
2. web.xml配置Servlet的映射

<servlet>
<servlet-name>Servlet名</sevlet-name>
<servlet-class>Servlet类名</servlet-class>
<sevlet>
<servlet-mapping>
<servlet-name>Servlet名</servlet-name>
<url-pattern>URL<url-pattern>
</servlet-mapping>

3. 让Tomcat自动重新加载:在context.xml中<Context reloadable="true">

Servlet编程接口

  • GenericServlet是所有Servlet的鼻祖
  • 用于HTTP的Servlet编程都通过继承javax.servlet.http.HttpServlet实现
  • 请求处理方法:
    • doGet() 响应GET请求,常用
    • doPost() 响应POST请求,常用
    • doPut() 用于HTTP1.1
    • doDelete() 用于HTTP1.1
    • doHead()
    • doOptions()
    • doTrace()
  • Servlet实例个数:在分布式系统的情况下,通常一个Servlet在服务器中只有一个实例

Servlet生命周期

  • 生命全过程
    • 加载ClassLoader
    • 实例化
    • 初始化init(Servlet config)
    • 处理请求 service() doGet() doPost()
    • 退出服务 destroy()

Servlet接受参数实例:

index.html

<html>
  <head>
    <title>index.html</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>

  <body>
    <h1>GET:提交参数</h1>
    <form action="getParameter.do" method="get">
        用户名:<input name="username" type="text"/><br/> 
        <input type="submit" value="提交"/>
    </form>
    <hr/>
    <h1>POST:提交参数</h1>
    <form action="getParameter.do" method="POST">
        用户名:<input name="username" type="text"/><br/> 
        <input type="submit" value="提交"/>
    </form>
  </body>
</html>

GetParemeters类

public class GetParemeters extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        req.setCharacterEncoding("utf-8");
        String username = req.getParameter("username");
        System.out.println("username = "+username);

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        this.doGet(req, resp);
    }

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>
  <servlet>
    <servlet-name>GetParemeters</servlet-name>
    <servlet-class>servlet.GetParemeters</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>GetParemeters</servlet-name>
    <url-pattern>/getParameter.do</url-pattern>
  </servlet-mapping>    
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值