程序员给java服务器配置,每一步都很详细,操作很简单

Servlet

1:Tomcat的目录结构

程序员给java服务器配置,每一步都很详细,操作很简单

2:发布第一个项目

在webapps目录下,创建一个目录,这个目录必须要按JavaEE结构来创建:

Project

index.html

WEB-INF

web.xml

classes

Lib

1:发布的方式1

放到webapps目录下

2:发布方式2

放到一个独立的目录下,在server.xml文件中引用:

程序员给java服务器配置,每一步都很详细,操作很简单

程序员给java服务器配置,每一步都很详细,操作很简单

3:独立的配置文件

程序员给java服务器配置,每一步都很详细,操作很简单

程序员给java服务器配置,每一步都很详细,操作很简单

4:配置虚拟主机

将上面的项目配置城 :

配置DNS

程序员给java服务器配置,每一步都很详细,操作很简单

配置虚拟主机:

unpackWARs="true" autoDeploy="true">

在tomcat中默认的主项目是ROOT

程序员给java服务器配置,每一步都很详细,操作很简单

程序员给java服务器配置,每一步都很详细,操作很简单

3:与Eclipse集成

步1:添加tomcat服务器

程序员给java服务器配置,每一步都很详细,操作很简单

程序员给java服务器配置,每一步都很详细,操作很简单

程序员给java服务器配置,每一步都很详细,操作很简单

程序员给java服务器配置,每一步都很详细,操作很简单

添加完成以后:

程序员给java服务器配置,每一步都很详细,操作很简单

步2:添加一个项目-服务器项目

程序员给java服务器配置,每一步都很详细,操作很简单

启动:

程序员给java服务器配置,每一步都很详细,操作很简单

4:在Eclipse中开发第一个HelloWord的web项目

步1:创建web项目

程序员给java服务器配置,每一步都很详细,操作很简单

程序员给java服务器配置,每一步都很详细,操作很简单

步2:查看创建的项目的结构

程序员给java服务器配置,每一步都很详细,操作很简单

直接点右键运行为:

程序员给java服务器配置,每一步都很详细,操作很简单

5:JavaWeb开发中的三大组件

程序员给java服务器配置,每一步都很详细,操作很简单

Filter - 级别最高

Listener级别第二

Servlet级别第三 - 》从这儿开始学习。

上面的这三大组件,都是接口,要求程序员去实现它们。由Tomcat/也叫Servlet容器去实例化这此类。

显示服务器的时间:

JS脚本 : 不能,因为JS运行在客户端面,显示的是客户的时间.

显示服务器的时间,必须要使用java代码。

6:Servlet

Servlet是个组件

用于生成动态的页面

接收用户的请求给用户输出响应。

Servlet是Server+Let的组合是指 服务上的小程序。

1:查看Servlet的api

JDK.chm是 JavaSE开发。

Servlet是JavaSE开发。所以要查另一个套api,且在JDK里面没有Servlet这个类。

查看:

程序员给java服务器配置,每一步都很详细,操作很简单

javax.servlet Interface Servlet

Defines methods that all servlets must implement.定义了一些方法,所有子类,必须要实现这些方法。

A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across

一个Servlet就是一个Java小程序,它运行在javaweb服务器,如Tomcat。接收响应请求通过客户端 。经常是通过http协议。

HTTP, the HyperText Transfer Protocol. (超文本传输协议 HTML)

HTTP协议 - 文本格式:

请示协议:

GET(请求类型Get|post) /index.html(请示资源) HTTP/1.1 -- >请求首行

Host : 请求头 有很多多的..

...

..

[空行]

请求正文 GET方式这儿没有数据,POST方式这儿才会有数据

响应协议

HTTP/1.1 200 (响应码) OK

响应头

Server:...

空行

正文

HTTP协议是无状态协议

步1:开发一个类实现接口

public class OneServlet implements

Servlet {

/**

* 此方法 是初始化方法当这个类,被实例化以后,由Tomcat容器来调用这个方

* 只会被调用一次

*/

@Override

public void init(ServletConfig config) throws ServletException {

System.err.println("初始化了:" + this);

}

/**

* 为用户提供服务的方法,用户每一次调用,都会执行此方法

*/

@Override

public void service(ServletRequest req, ServletResponse res)

throws ServletException, IOException {

// 设置响应的类型为

res.setContentType("text/html;charset=UTF-8");

// 获取输出到浏览器的输出流

PrintWriter out = res.getWriter();

String str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

// 输出给

System.err.println("service this:" + this);

out.print("当前的时间是:" + str);

}

@Override

public void destroy() {

// 当Tomcat关闭时,由Tomcat来调用的方法,用于清理某些资源

// 只会被调用一次

System.err.println("destory:" + this);

}

步2:将它配置到web.xml中

one servlet

cn.inkeeper.OneServlet

one servlet

/one.html

步3:访问

7:Servlet的访问过程

程序员给java服务器配置,每一步都很详细,操作很简单

8:Servlet的实例化时间和实例化个数

实例化时间

默认的所有servlet在项目启动时,不会实例化。

在用户第一次访问时实例化且初始化。

实例化个数:

Servlet默认是单一的实例,由Tomcat通过反射实例化,由Tomcat调用初始化方法。

程序员给java服务器配置,每一步都很详细,操作很简单

9:Servlet的生命周期方法

生命周期的初始化方法 ,必须要叫以下的名称,必须要接收以下类型的参类:

此方法只会被调用一次:

@Override

public void init(ServletConfig config) throws ServletException {

System.err.println("初始化了:" + this);

}

以下是生命周期中提供服务的方法,用户每一次请求服务器,都会调用这个方法 :

@Override

public void

service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

当Tomcat关闭时,由Tomcat来调用的方法,用于清理某些资源 - 也只会执行次

@Override

public void destroy() {

// 当Tomcat关闭时,由Tomcat来调用的方法,用于清理某些资源

// 只会被调用一次

System.err.println("destory:" + this);

}

10:通过上面的讲解

两个点:

1:Servlet是单例的。是由Tomcat容器实例化这个类,且由 Tomcat服务器维护这个Serv let的实例。

2:Servlet的生命周期:

Init(ServletCOnfig)

Service(req,resp)

Destory();

配置的方式:

2:将这个类配置到web.xml中去

3 : 通过/one 访问的是....../one

11:快速示例

用户注册功能:

思想:

1:开发一个注册的页面。

2:在后台接收数据 开发一个Servlet接收用户传递的数据。

步1:开发注册的页面

程序员给java服务器配置,每一步都很详细,操作很简单

"post" action="reg">

请注册

步2:开发Servlet接收用户的注册

public class RegiestServlet implements Servlet {

@Override

public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

//1:设置编码类型

req.setCharacterEncoding("UTF-8");

//2:接收用户的参数中的"name"

String name = req.getParameter("name");

String pwd = req.getParameter("pwd");

String sex = req.getParameter("sex");

String major = req.getParameter("major");

//3:显示

res.setContentType("text/html;charset=UTF-8");//设置响应的格式

//获取输出对象

PrintWriter out =

res.getWriter();

out.print("姓名是:"+name+"


");//\n

out.print("密码是:"+pwd+"


");

out.print("性别是:"+sex+"


");

out.print("学历:"+major+"


");

}

步3:配置

regServlet

cn.inkeeper.RegiestServlet

regServlet

/reg

"post" action="reg">

请注册

要求:

1:验证两次密码一样。

2:注册不成功,回到注册页面时,原来的数据,还在,但是注册密码没有了。

用于接收用户向服务器传递的参数

Get - >最大限制是4K

/one.html?name=Jack&age=90

Post - 没有限制

数据在请示协议的正文中

首行

请示头

[]

Name=Jack&age=90

request.getParameter("name") : Jack

request.getParemeter("age") : 90(String)

用于输出数据

见刚才的代码。


分享到:


相關文章: