servlet的基本使用

目录

一、servlet的概念

二、servlet的生命周期

三、 servlet实现登录的案例

💕登录界面

💕实现式开发

💕继承式开发

💕servlet的配置

💗配置式开发

💗注解式开发


一、servlet的概念

狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将Servlet 理解为后者。 Servlet 运行于支持 Java 的应用服务器中。从原理上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服务器。

简而言之,Servlet 是指实现了Servlet 接口的类。

二、servlet的生命周期

Servlet的生命周期为启动服务器之后的第一次调用到服务器关闭。
如果在web.xml中对该Servlet配置了<load-on-startup>1</load-on-startup>,则生命周期为启动服务器该到服务器关闭。
在Servlet中可以重写init()方法和destroy()方法,其中init()方法为第一次调用Servlet,被加载进内存时执行。destroy()方法为关闭服务器时,Servlet被销毁时执行。

三、 servlet实现登录的案例

💕登录界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="test.do" method="post">
	<p><input type="text" name="username"></p>
	<p><input type="text" name="password"></p>
	<p><button>登录</button></p>
</form>

</body>
</html>

💕实现式开发

package com.xyz.servlet;

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

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * 用来实现登录请求的处理
 * @author zjjt
 *
 */

public class LoginServlet implements Servlet{

	@Override //init 初始化
	public void init(ServletConfig arg0) throws ServletException {
		//当请求来到这个servlet 就会调用init方法
		System.out.println("开始初始化");
	}
	
	@Override //服务
	public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
		HttpServletResponse response=(HttpServletResponse)resp;
		HttpServletRequest request=(HttpServletRequest)req;
		//所有的代码全部写在这个方法中
		req.setCharacterEncoding("utf-8");
		//取到用户数据
		String username = req.getParameter("username");
		String password = req.getParameter("password");
		//通过响应对象获取了输出对象
		PrintWriter out=response.getWriter();
		//通过请求对象取session
		HttpSession session = request.getSession();
		//通过请求对象取application
		ServletContext application = request.getServletContext();
		if("root".equals(username)&&"root123".equals(password)) {
			out.print("登录成功");
		}else {
			out.print("登录失败");
		}
	}
	
	@Override // 销毁
	public void destroy() {
		//1.服务关闭了
		//2.这个类被修改了
		System.out.println("销毁了");
	}
	
	@Override // 得到配置
	public ServletConfig getServletConfig() {
		return null;
	}

	@Override // 得到信息
	public String getServletInfo() {
		return null;
	}

}

💕继承式开发

package com.xyz.servlet;

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

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

@WebServlet("/test.do") //直接填访问路径
public class MyServlet extends HttpServlet{
	
	//不同的请求方式
	//doGet 专门处理get请求
	//doPost 专门处理post请求
	
	//<a href="baidu.jsp">xx</a> 【get】
	//location.href='baidu.jsp' 【get】
	//表单默认是get,可以改成post
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//登录功能
		req.setCharacterEncoding("utf-8");
		//设置编码 
		//【utf-8】【gb2312】【big5】支持中文的编码
		resp.setCharacterEncoding("gb2312");
		
		//取到用户数据
		String username = req.getParameter("username");
		String password = req.getParameter("password");
		
		//通过响应对象获取了输出对象
		PrintWriter out=resp.getWriter();
		
		//通过请求对象取session
		HttpSession session = req.getSession();
		
		//通过请求对象取application
		ServletContext application = req.getServletContext();
		
		if("root".equals(username)&&"root123".equals(password)) {
			out.print("登录成功");
		}else {
			out.print("登录失败");
		}
	}

}

 【utf-8】【gb2312】【big5】支持中文的编码

💕servlet的配置

💗配置式开发

需要在web.xml中配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>web-10</display-name>
  <!-- web.xml是整个项目的配置文件 -->
  <!-- web.xml如果被修改,服务器必须重启 -->
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 1.配置servlet -->
  <servlet>
  		<!-- 给它取个名字 -->
  		<servlet-name>one</servlet-name>
  		
  		<!-- servlet-class 需要填上类的全路径 -->
  		<servlet-class>com.xyz.servlet.LoginServlet</servlet-class>
  </servlet>
  
  <!-- 2.配置servlet的访问路径 -->
  <!-- mapping 映射 -->
  <servlet-mapping>
  		<!-- 对应的servlet的名字 -->
  		<servlet-name>one</servlet-name>
  		
  		<!-- 给它配置一个访问的路径 -->
  		<url-pattern>/login.do</url-pattern>
  </servlet-mapping>
  
</web-app>

💗注解式开发

@WebServlet("/test.do") //直接填访问路径

 servlet就讲解到这啦

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Servlet是Java EE中的一个基本组件,主要用于处理Web应用程序的请求和响应。Servlet运行在Web服务器上,它接收来自Web浏览器的请求,并根据请求生成响应数据,将响应发送回客户端浏览器。下面是Java Servlet使用步骤: 1. 编写Servlet类:Java Servlet类是一个Java类,它必须继承自javax.servlet.http.HttpServlet类,并实现doGet或doPost方法,用于处理HTTP GET或POST请求。 2. 配置Servlet:在Web应用程序中,需要在web.xml文件中对Servlet进行配置,指定Servlet类的映射路径、名称和URL模式等信息。 3. 部署Servlet:将Servlet类编译成.class文件,并将其部署到Web服务器的webapps目录下。 4. 启动Web服务器:启动Web服务器,使其可以接收来自客户端的请求。 5. 访问Servlet:在Web浏览器中输入Servlet的URL地址,即可向Servlet发送HTTP请求,并接收到Servlet返回的响应数据。 在Servlet中,可以使用HttpServletRequest和HttpServletResponse对象来获取请求和响应数据。可以使用这些对象来获取请求参数、请求头、Cookie等信息,并将响应数据写入到响应流中。Servlet还支持会话管理、重定向、转发等操作,可以通过这些操作来实现Web应用程序的各种功能。 总之,Java Servlet是一个非常重要的Java EE组件,它可以用于处理Web应用程序的请求和响应,是Java Web开发不可或缺的一部分。掌握Java Servlet使用可以帮助我们更好地开发Web应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值