javaweb入门(二) ----Servlet

J2EE

J2EE(java 2 platform Enterprise edition)是指“java 2企业版”。
web应用就是J2EE最核心的功能。
J2EE由13个功能模块:

  1. Servlet web服务器小程序。
  2. JSP 服务器页面。
  3. JDBC 数据库交互模块。
  4. XML XML交互模块。
  5. EJB 企业级Java Bean。
  6. RMI 远程调用。
  7. JNDI 目录服务。
  8. JMS 消息服务。
  9. JTA 事务管理。
  10. JavaMail 发送/接收email
  11. JAF 安全框架
  12. CORBA CORBA集成
  13. JTS CORBA事务监控

Apache Tomcat

在这里插入图片描述
Tomcat是Apache 软件基金会旗下一款免费的开放源代码的web应用服务器程序。
Tomcat是运行Servlet()的容器。

Tomcat下载、安装

下载
在这里插入图片描述
下载后解压。进入文件夹内的bin文件夹启动cmd,使用startup.bat命令启动。
浏览器打开http://localhost:8080/
在这里插入图片描述

IDEA配置Tomcat

参考链接

J2EE和Tomcat的关系

J2EE是一组技术规范与指南,具体实现由软件厂商决定。
Tomcat是J2EE web (Servlet与JSP)标准的实现者。
J2SE是J2EE运行的基石,运行Tomcat离不开J2SE。

Servlet

Servlet (Servlet App)服务器小程序,主要功能用于生成动态web内容。
Servlet是J2EE 最重要的组成部分。

新建一个web项目,创建一个Servlet。

项目目录
在这里插入图片描述
FirstServlet .java内容


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

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;



public class FirstServlet extends HttpServlet{

	@Override
	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String name = request.getParameter("name");
		
		String html = "<h1 style='color:red'>hi,"+name+"</h1>";
		
		PrintWriter out = response.getWriter();
		out.println(html);
	}
}

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_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>FirstServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 声明Servlet -->
  <servlet>
  <!-- Servlet别名 -->
  	<servlet-name>first</servlet-name>
  	<servlet-class>com.study.FirstServlet</servlet-class>
  </servlet>
  <!-- 将Servlet和URL绑定 -->
  <servlet-mapping>
  	<servlet-name>first</servlet-name>
  	<url-pattern>/hi</url-pattern>
  </servlet-mapping>
</web-app>

然后将项目发布到Tomcat上。

Servlet的开发步骤

  • 创建Servlet类,继承HttpServlet。
  • 重写service方法,编写程序。
  • 配置web.xml,绑定URL。

实例:


package com.study;

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

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SampleServlet extends HttpServlet{
	public void service(HttpServletRequest request ,HttpServletResponse response) {
		try {
			PrintWriter out = response.getWriter();
			out.println("<a href='http://www.baidu.com'>Baiddu</a>");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

web.xml 添加如下配置


  <servlet>
  	<servlet-name>sample</servlet-name>
  	<servlet-class>com.study.SampleServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>sample</servlet-name>
  	<url-pattern>/sample</url-pattern>
  </servlet-mapping>

Servlet访问方式

  • http://IP地址:端口/context-path/url-mapping
  • 远程访问使用IP地址,本地访问使用localhost(127.0.0.1)
  • context-path 为上下文路径 默认为工程名。

请求参数

  • 请求参数是指浏览器通过请求向Tomcat提交的数据。
  • 请求参数通常是用户输入的数据,待Servelet进行处理。
  • 参数名1=值1&参数名2=值2&…

Servlet接收请求参数

  • request.getParameter() 接收单个参数
  • request.getParameterValues() 接收多个参数

GET与POST请求处理方式

  • 所有请求 — service()方法
  • Get请求 — doGet()方法
  • Post请求 — doPost()方法

Servlet生命周期

  • 装载-web.xml
  • 创建-构造函数
  • 初始化-init()
  • 提供服务 - service()
  • 销毁 - destory()
public class FirstServlet extends HttpServlet{
	public FirstServlet() {
		System.out.println("正在创建FirstServlet对象");
	}
	public void init(ServletConfig config) throws ServletException{
		System.out.println("正在初始化FirstServlet对象");
	}
	
	@Override
	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String name = request.getParameter("name");
		
		String html = "<h1 style='color:red'>hi,"+name+"</h1>";
		
		PrintWriter out = response.getWriter();
		out.println(html);
	}
	public void destroy() {
		System.out.println("正在销毁FirstServlet对象");
	}
}

使用注解配置Servlet

  1. Servlet 3.x 之后引入了“注解Annotation”特性
  2. 注解用于简化web应用程序的配置过程。
  3. Servlet核心注解:@WebServlet

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

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;

@WebServlet("/anno")
public class AnnotationServlet  extends HttpServlet {
	@Override
	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		response.getWriter().println("annotation servlet");
	}
}

启动时加载Servlet

  • web.xml使用load-on-startup设置启动加载。
  • <load-on-startup>0-9999</load-on-startup>
  • 启动时加载在工作中常用于系统的预处理。

web.xml中的配置

<servlet>
  	<servlet-name>import</servlet-name>
  	<servlet-class>job.ImportServlet</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>

注解中使用


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

@WebServlet(urlPatterns="import",loadOnStartup=2)
public class ImportServlet extends HttpServlet{

	@Override
	public void init() throws ServletException {
		System.out.println("正在导入数据");
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值