01_Servlet概述

Servlet是什么

  • 就是一个Java类

  • 服务器端小程序

  • 处理用户请求

Servlet的实现

  • 实现Servlet接口

  • 继承GenericServlet类

  • 继承HttpServlet类

编写Servlet

1.新建web项目(helloservlet)
2.编写HelloServlet类

package com.zhushen.Servlet;

import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HelloServlet implements Servlet {
    public void destroy() { 
    }

    public ServletConfig getServletConfig() {
        return null;
    }

    public String getServletInfo() {    
        return null;
    }

    public void init(ServletConfig config) throws ServletException {    
    }

    //处理请求
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
        res.getOutputStream().print("Hello Servlet!");
    }

    public HelloServlet() {
    }
}

3.在web.xml中部署Servlet

<!-- Servlet的配置
     包括两个部分
     Servlet
     Servlet-Mapping
      -->
     <servlet>
     <!-- Servlet-name可以自定义,但是要唯一 -->
        <servlet-name>helloservlet</servlet-name>
     <!-- Servlet-class Servlet的完全限定名:包名.类名
             检查是否写错的办法:按住ctrl+鼠标看是否能够连接
      -->
        <servlet-class>com.zhushen.Servlet.HelloServlet</servlet-class>
     </servlet>

     <servlet-mapping>
     <!-- 和Servlet标签中的Servlet-name要一致 -->
        <servlet-name>helloservlet</servlet-name>
     <!-- 也可以叫做Servletname:这个名称是访问名称:请求路径 -->
        <url-pattern>/hello</url-pattern>
     </servlet-mapping>

4.访问:localhost:8080/helloservlet/hello(项目名-访问名)

servlet小案例

  • web.xml
<servlet>
    <servlet-name>helloservlet</servlet-name>
    <servlet-class>com.zhushen.Servlet.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>helloservlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
  • User类
package com.zhushen.vo;

public class User {
    private  String name;
    private int age;
    private String sex;
    private String phone;
    public User() {

    }

    public User(String name, int age, String sex, String phone) {
        super();
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.phone = phone;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
}
  • helloservlet
package com.zhushen.Servlet;

import java.io.IOException;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import com.zhushen.vo.User;

public class HelloServlet implements Servlet {

    public void destroy() { 
    }


    public ServletConfig getServletConfig() {
        return null;
    }


    public String getServletInfo() {    
        return null;
    }


    public void init(ServletConfig config) throws ServletException {    
    }

    //处理请求
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
        List<User> list =new ArrayList<User>();
        list.add(new User("张三丰",45,"男","17801020294"));
        list.add(new User("小芳",22,"女","17801020294"));
        list.add(new User("小红",20,"女","17801020294"));
        list.add(new User("小明",25,"男","17801020294"));
        //响应转码,默认ISO8859-1
        res.setCharacterEncoding("utf-8");//必须放在前面
        PrintWriter os =res.getWriter();
        res.setContentType("text/html;charset=utf-8");

        os.print("<html>");
        os.print("<head>");
        os.print("<title>");
        os.print("数据系统");
        os.print("</title>");
        os.print("</head>");
        os.print("<body>");
        os.print("<table align='center' width='80%'>");
        os.print("<tr>");
            os.print("<td>");
            os.print("姓名");
            os.print("</td>");
            os.print("<td>");
            os.print("年龄");
            os.print("</td>");
            os.print("<td>");
            os.print("性别");
            os.print("</td>");
            os.print("<td>");
            os.print("电话");
            os.print("</td>");
        os.print("</tr>");
        for(int i=0;i<list.size();i++){
            os.print("<tr>");
            os.print("<td>");
            os.print(list.get(i).getName());
            os.print("</td>");
            os.print("<td>");
            os.print(list.get(i).getAge());
            os.print("</td>");
            os.print("<td>");
            os.print(list.get(i).getSex());
            os.print("</td>");
            os.print("<td>");
            os.print(list.get(i).getPhone());
            os.print("</td>");
        os.print("</tr>");
        }
        os.print("</table>");
        os.print("</body>");
        os.print("</html>");
    }

    public HelloServlet() {

    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值