J2EE Servlet

本文详细介绍了标准JavaWeb工程的目录结构,包括Tomcat应用根目录、WEB-INF目录及其子目录的作用。讲解了Servlet的基本概念,如web.xml配置、参数处理、GET与POST请求方法,并展示了Servlet的生命周期。此外,还提到了使用注解简化配置和启动时加载Servlet的方法。
摘要由CSDN通过智能技术生成

标准Java Web 工程结构

组织结构描述
tomcat安装目录/webapps/Tomcat应用根目录
/web应用目录/Java Web 应用目录
/web应用目录/index.html / .jsp默认首页
/WEB-INFWEB应用的安全目录,用于存放配置文件
/WEB-INF /web.xmlweb.xml是部署描述符文件,是该Web项目核心配置文件
/WEB-INF/classes存放编译后的classes文件
/WEB-INF/lib用于存放web用于依赖的jar文件
/META-INF/MANIFEST.MF包含web应用的版本等信息

一个简单的Servlet

class

public class FistServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //接收请求发来的参数
        String name =req.getParameter("name");
        String html ="<h1 style='color:red '>hi,"+name+"!</h1>";
        PrintWriter out=resp.getWriter();//向浏览器输去的数据流
        out.println(html);//将html发送回浏览器
    }
web.xml
	<servlet><!--起名-->
        <servlet-name>sample</servlet-name>
        <servlet-class>Frist.SampleServlet</servlet-class>
    </servlet>
    <servlet-mapping><!--将Servlet与URL绑定-->
        <servlet-name>sample</servlet-name>
        <url-pattern>/sample</url-pattern>
    </servlet-mapping>

请求参数

通常是用户输入的数据,待Servlet进行处理。
参数名=值1<font color ='red'>&</font>参数名=值2<font color ='red'>&</font>参数名n=.....

Servlet接收请求参数

代码功能
request.getParameter()接收单个参数
request.getParameterValues()接收多个同名参数
out.println("<标签>"+参数+"<标签结束>")像当前的网页输出指定的html
request.getRequestDispatcher("/login.jsp").forward(request,response)页面重定向

eg:

1.		
		String  name =request.getParameter("name");
		PrintWriter out=response.getWriter();
        out.println("<h1>name="+name+"</h1>"); //获取   
2.
		String[] specs =request.getParameterValues("specs");
		PrintWriter out=response.getWriter();
		for (int i=0;i<specs.length;i++){
            out.println("<h1>specs="+specs[i]+"</h1>");
        }

Ger与Post请求方法

代码功能
request.getMethod获取请求的方式是哪一种

get方式是将数据在URL上显性发送数据。
· http://localhost:8080 /sample?name=zhansan

post方式会将数据放在 " 请求体 " 中隐性发送数据。
· http://localhost:8080 /sample
· 请求体:name=zhangsan

eg:
//分别处理

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
................................
}

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
.....................................
}

Servlet生命周期

装载 -web.xml
创建 -构造函数
初始化 -init()
提供服务 -service()
销毁 -destroy()

eg:

	public FistServlet(){//构造函数
        System.out.println("正在创建FistServlet对象");
    }
    public void init(ServletConfig config)throws ServletException{
        System.out.println("初始化对象");
    }
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    ....................................
    }
    public void destroy(){
        System.out.println("正在销毁");
    }

使用注解简化配置

Servlet核心注解: @WebServlet

eg:

@WebServlet("/anno")  // '/anno' 就是URL
public class SampleServlet  extends HttpServlet{
    @Override
    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    ...................................
        }
    }

启动时加载Servlet

在web.xml使用< load-on-startup>设置启动加载

< load-on-startup>0~9999< /load-on-startup> 0是最高权
eg:

class.
    public void init(ServletConfig config)throws ServletException{
      .....................
    }
    
xml.
	<servlet><!--起名-->
        <servlet-name>sample</servlet-name>
        <servlet-class>Frist.SampleServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>

使用注解:
@WebServlet(urlPatterns = "/anno",loadOnStartup = 2)   //使用注解的时候必须设置url,否则会无效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值