java_web1

一.部署第一个JavaWeb程序

1.新建project,搜索并创建web工程(Dynamic Web Project)

2.在工程中WebContent目录下创建第一个HTML文件

3.双击打开html,编写

4.鼠标右键点击项目,部署运行项目(Run on Server)

5.通过浏览器查看效果

二.javaWeb应用工程目录结构

src:存放Java源代码的目录。

Libraries:存放的是TomcatJRE中的jar

build:自动编译.java文件的目录

WebContentWeb根目录,存放的是需要部署到服务器的文件

MEAT-INF:是存放工程自身相关的一些信息,元文件信息,通常由开发工具和环境自动生成。

MANIFEST.MF:配置清单文件

WEB-INF:这个目录下的文件,是不能被客户端直接访问的。

classes:存放Java字节码文件的目录。

lib:用于存放该工程用到的库。

web.xmlweb工程的配置文件,完成用户请求的逻辑名称到真正的servlet类的映射。

客户端能访问的资源(*html或*.jpg)必须跟WEB-INF在同一级目录,即放在Web根目录下的资源,从客户端是可以通过URL地址直接访问的。

三.在.xml中servlet配置

示例代码

//创建servlet类
package com.neu.first;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/* 第一步:继承httpservlet
 * 第二步:重写service方法
 * 加载顺序
 * 拓展:每当servlet被第一次访问的时候,会生成一个对象(调用init方法) servlet是单例
 * 2.<load-on-startup></load-on-startup>默认为0,当定义为整数时,在服务器启动时加载,整数越小,优先级越高
 */
public class FirstServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
          //加载初始化
    @Override
    public void init() throws ServletException {
    	// TODO Auto-generated method stub
    	System.out.println("firstServlet被加载了");
    }
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		System.out.println("进入service方法");
		//设置字符响应集
		//arg1.setCharacterEncoding("utf-8");
		//设置响应头
		arg1.setContentType("text/html;charSet=utf-8");
		//获取响应的流
		PrintWriter pw=arg1.getWriter();
		//输出内容
		pw.write("<h1>从服务器游一圈回来了<h1>");
		pw.flush();
	}
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		 System.out.println("firstServlet被摧毁了");
		 
		 System.out.println("firstServlet被摧毁了");
	}
}


部署:
<?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" version="3.1">
  <display-name>web_zk</display-name>
  
  
  <!-- 定义servlet容器 -->
  <servlet>
  	<servlet-name>firstDemo</servlet-name>
  	<servlet-class>com.neu.first.FirstServlet</servlet-class>
  	<!-- <load-on-startup>1</load-on-startup> -->
  </servlet>
  <!--   为容器绑定一个地址 -->
  <servlet-mapping>
  	<servlet-name>firstDemo</servlet-name>
  	<url-pattern>/first</url-pattern>
  </servlet-mapping>
  
  <servlet>
  	<servlet-name>thirdDemo</servlet-name>
  	<servlet-class>com.neu.first.ThirdServlet</servlet-class>
  	<!-- <load-on-startup>2</load-on-startup> -->
  	<init-param>
 		<param-name>张三</param-name>
 		<param-value>345678</param-value>
 	</init-param>
 	<init-param>
 		<param-name>李四</param-name>
 		<param-value>456789</param-value>
 	</init-param>
 	<init-param>
 		<param-name>王五</param-name>
 		<param-value>567890</param-value>
 	</init-param>
  </servlet>
  <!--   为容器绑定一个地址 -->
  <servlet-mapping>
  	<servlet-name>thirdDemo</servlet-name>
  	<url-pattern>/third</url-pattern>
  </servlet-mapping>
  
  
  <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>
</web-app>

servlet接口中的一些主要方法

方法名称

方法描述

 

init(ServletConfig config)

Servlet始化,在Servlet实例化后,容器调用该方法进行Servlet的初init()方法只能被调用一次,如果此方法没有正常结束,就会抛出一个ServletException异常,一旦抛出该异常,Servlet将不再执行,随后对其进行再次调用容器重新载入并再次运行init()方法

 

service(ServletRequest req

,ServletResponse resp)

 

Servlet服务方法。当用户对Servlet发出请求时容器会调用该方法处理用户的请求

 

destroy()

Servlet的销毁方法。容器在终止Servlet服务前调用此方法,容器调用此方法前必须给service()线程足够时间来结束执行,因此接口规定当service()正在执行时,destroy()不被执行

getServletConfig()

此方法可以让Servlet在任何时候获得ServletConfig对象

getServletInfo()

此方法返回一个String对象,该对象包含Servlet的信息,例如:开发者、创建日期、描述信息等。该方法也可用于容器

web.xml中通过“<servlet> </servlet>”元素声明Servlet,其子元素及其描述如下表:

属性名

类型

描述

<description>

String

指定该Servlet的描述信息,等价于@WebServlet description属性

<display-name>

String

指定该Servlet的显示名,通常配合工具使用,等价于@WebServletdisplayName属性

<servlet-name>

String

指定Servlet的名称,一般与Servlet的类名相同,要求在一个web.xml文件内名字唯一,等价于@WebServletname属性

<servlet-class>

String

指定Servlet类的全限定名,即:包名.类名

<init-param>

 

指定Servlet初始化参数,等价于@WebServletinitParams属性,若有多个参数可重复定义元素。此元素为可选配置

<param-name>

String

指定初始参数名

<param-value>

String

指定初始参数名对应的值

<load-on-startup>

int

指定Servlet的加载顺序,等价于@WebServletloadOnStartup属性

<async-supported>

boolean

指定Servlet是否支持异步操作模式,默认为false,等价于@WebServletasyncSupported属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值