Servlet技术

概述

Servlet是符合一定规范的Java类,属于服务器程序,主要用于接收用户传来的数据及响应请求等。

实现Servlet的方式有三种:

l 实现javax.servlet.Servlet接口;

l 继承java.servlet.GenericServlet类;

l 继承javax.servlet.http.HttpServlet类;常用

与JSP的区别

因为Servlet控制页面对于美工来说太困难,所以有了JSP。JSP在Html页面中混合了Java类和JSP标签,最终得到一个页面,更多的是视图的功能,在运行中,JSP文件首先转为Serlvet文件(在这一步中为JSP中的模板语句加上out.println()并将JSP标签转为JAVA类,相当于Servlet中需要手动编写的内容JSP引擎自动完成了转化,省时省力)。然后就和Servlet文件处理方式一样了:翻译为字节码文件.class,然后由Servlet引擎编译为可执行文件.exe之后运行,这么看来JSP还是借助于Servlet实现的。

但是JSP的弊端在于前后端耦合,出现错误的时候,前端程序员和后端程序员经常容易打起来(

所以出现了前后端分离的概念,如MVC模式

  1. JSP更多的进行页面显示,Servlet更多的处理业务逻辑
  2. Servlet可以实现JSP的所有功能,但由于美工使用Servlet做界面非常困难,后来开发了JSP。
  3. JSP技术开发网站的两种模式:JSP + JavaBean;JSP + Servlet + JavaBean。在多层应用中, JSP用作表现层,Servlet用作控制层,因为在JSP中放太多的代码不利于维护,所以留给Servlet来实现,而大量的重复代码写在JavaBean中。

配置方法

Servlet中的相对路径和绝对路径

  1. 3.0以前的版本,使用web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
    <!-- 声明Servlet对象 -->
	<servlet>
		<servlet-name>CalculateServlet</servlet-name>
		<servlet-class>com.lyq.servlet.CalculateServlet</servlet-class>
	</servlet>
     <!-- 映射Servlet对象 -->
	<servlet-mapping>
		<servlet-name>CalculateServlet</servlet-name>
		<url-pattern>/CalculateServlet</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app> 
  1. 3.0以后的版本提供了新的配置方式
    路径中的/代表改项目对应的根目录,比如项目名为MAIN,对应的根目录就是http://localhost:8080/MAIN/,图片中的配置方式,访问此Servlet的路径为http://localhost:8081/MAIN/MyServlet

实现

一般继承HttpServlet

public class TestServlet extends HttpServlet {
    //初始化方法
    public void init() throws ServletException {
    }
    //处理HTTP Get请求
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
    //处理HTTP Post请求
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
    //处理HTTP Put请求
    public void doPut(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
    //处理HTTP Delete请求
    public void doDelete(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
     }
    //销毁方法
    public void destroy() {
        super.destroy();
    }
}
package com.caut.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public MyServlet() {
		super();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
		// response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 设置编码
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		// 检查
		String[] idList = { "123", "456" };
		String tag = request.getParameter("u_id");
		PrintWriter out = response.getWriter();
		out.println("返回给你的数据");
		System.out.println(tag);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值