servlet的一些小笔记

动态web技术
servlet程序
编写一个类实现servlet接口
把开发好的Java类部署到web服务器

package com.wefun.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class Helloservlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        PrintWriter writer = resp.getWriter();//响应流
        writer.print("hello servlet");

    }

编写Servlet映射
浏览器访问,浏览器连接web服务器,要在web服务器中注册Servlet,还需要给他一个浏览器能够访问的路径
在web.xml中添加

//注册servlet
<servlet>
        <servlet-name></servlet-name>
        <servlet-class>类名字</servlet-class>
    </servlet>
   //servlet请求的路径
    <servlet-mapping>
        <servlet-name></servlet-name>
        <url-pattern></url-pattern>
    </servlet-mapping>

ServletContext
servlet上下文
web容器在启动的时候会为每一个web程序都创建一个对应的ServletContext对象,它代表着当前的web应用;
共享数据

   public class servlet01 extends HttpServlet {
    @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//      this.getInitParameter();  初始化参数
//        this.getServletConfig(); servlet配置
//        this.getServletContext(); Servlet上下文
        ServletContext context=this.getServletContext();
        String username="wefun";
        context.setAttribute("username",username);
    }

创建另一个servlet类

public class GetServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();
        String username = (String) servletContext.getAttribute("username");
        resp.setContentType("text/html");//设置页面内容格式
        resp.setCharacterEncoding("UTF-8");//页面显示格式
        resp.getWriter().print("名字"+username);
    }
}
   <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.wefun.servlet.servlet01</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>get</servlet-name>
        <servlet-class>com.wefun.servlet.GetServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>get</servlet-name>
        <url-pattern>/getc</url-pattern>
    </servlet-mapping>

首先设置servlet01类中的username,运行网站存入ServletContext
在运行getservlte读取数据网站地址/getc

2.获取初始化参数

ServletContext context = this.getServletContext();
        String url=context.getInitParameter("url");
        resp.getWriter().print(url);
<!--配置一些web应用的初始配置-->
    <context-param>
        <param-name>url</param-name>
        <param-value>jdbc:mysql://localhost:8080/mybatis</param-value>
    </context-param>
    <servlet>
        <servlet-name>gt</servlet-name>
        <servlet-class>com.wefun.servlet.ServletDemo03</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>gt</servlet-name>
        <url-pattern>/gtc</url-pattern>
    </servlet-mapping>

3.转发请求路径307

   ServletContext context = this.getServletContext();
//        RequestDispatcher requestDispatcher = context.getRequestDispatcher("/gtc");//转发请求路径
//        requestDispatcher.forward(req,resp);//调用forword实现请求转发
        context.getRequestDispatcher("/gtc").forward(req,resp);
    }

4.读取资源文件

 @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
        Properties prop = new Properties();
        prop.load(is);
        String username = prop.getProperty("username");
        String password = prop.getProperty("password");
        resp.getWriter().print(username+":"+password);

在maven中自动导入包

  <dependencies>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
    </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
        </dependency>


    </dependencies>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值