关于web技术的学习

Posted 韩说不白说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于web技术的学习相关的知识,希望对你有一定的参考价值。

 

Servlet

 

1Tomcat的目录结构

 

 

2:发布第一个项目

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

   Project

      index.html

      WEB-INF

          web.xml

          classes

          Lib

 

1:发布的方式1

  放到webapps目录下

 

2:发布方式2

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

   

 

 

 

3:独立的配置文件

 

 

 

 

4:配置虚拟主机

 将上面的项目配置城 :www.inkeeper.com

 

 

配置DNS

 

 

配置虚拟主机:

   <Host name="www.inkeeper.com"  appBase="d:/a"

            unpackWARs="true" autoDeploy="true">

        </Host>

tomcat中默认的主项目是ROOT

  

 

 

 

 

3:Eclipse集成

步1:添加tomcat服务器

 

 

 

 

 

 

添加完成以后:

 

 

 

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

 

启动:

  

 

 

 

4:在Eclipse中开发第一个HelloWordweb项目

步1:创建web项目

 

 

 

 

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

 

 

 

直接点右键运行为:

 

 

 

5JavaWeb开发中的三大组件

 

 

Filter - 级别最高

Listener级别第二

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

 

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

 

 

显示服务器的时间:

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

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

 

 

6Servlet

   Servlet是个组件

   用于生成动态的页面

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

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

 

1:查看Servlet的api

JDK.chmJavaSE开发。

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

 

查看:

   

 

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 : www.baidu.com:80  请求头 有很多多的..

      ...

     ..

     [空行]

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

      

   响应协议

      HTTP/1.1  200 (响应码)  OK

      响应头

      Server:...

     空行

     正文

 

HTTP协议是无状态协议

   

 

 

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

public class OneServlet implements Servlet {

/**

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

 * 只会被调用一次

 */

@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("<b>当前的时间是:</b>" + str);

}

 

@Override

public void destroy() {

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

// 只会被调用一次

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

 

}

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

<!-- 配置第一个Servlet -->

<servlet>

<!--声明任意的名称 -->

<servlet-name>one servlet</servlet-name>

<!-- 指定类的名称 -->

<servlet-class>cn.inkeeper.OneServlet</servlet-class>

</servlet>

<!-- 配置如何访问 -->

<servlet-mapping>

<!-- 引用上面的声明的名称 -->

<servlet-name>one servlet</servlet-name>

<!-- 配置访问的url -->

<url-pattern>/one.html</url-pattern>

</servlet-mapping>

步3:访问

http://localhost/helloworld/one.html

 

 

 

7Servlet的访问过程

 

 

 

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

实例化时间

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

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

 

实例化个数:

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

 

 

 

     

 

9Servlet的生命周期方法

 

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

此方法只会被调用一次:

@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:通过上面的讲解

两个点:

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

   2Servlet的生命周期:

      Init(ServletCOnfig)

      Service(req,resp)

      Destory();

 

配置的方式:

     1:声明一个类实现接口

     2:将这个类配置到web.xml中去<servlet><servlet-mapping>

     3 : 通过<url-pattern>/one 访问的是....../one

 

 

 

 

 

 

11:快速示例

用户注册功能:

 

思想:

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

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

 

步1:开发注册的页面

 

<form method="post" action="reg">

<p>请注册</p>

<table>

 

 

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

public class RegiestServlet implements Servlet {

@Override

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

//1:设置编码类型

req.setCharacterEncoding("UTF-8");

//2:接收用户的参数<input type="text" name="name"/>中的"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+"<hr>");//\n

out.print("密码是:"+pwd+"<hr>");

out.print("性别是:"+sex+"<hr>");

out.print("学历:"+major+"<hr>");

 

}

 

步3:配置

<!-- 配置第二个servlet -->

<servlet>

<servlet-name>regServlet</servlet-name>

<servlet-class>cn.inkeeper.RegiestServlet</servlet-class>

</servlet>

<!-- 配置如何访问 -->

<servlet-mapping>

<servlet-name>regServlet</servlet-name>

<url-pattern>/reg</url-pattern>

</servlet-mapping>

 

 

 

<form method="post" action="reg">

<p>请注册</p>

<table>

 

以上是关于关于web技术的学习的主要内容,如果未能解决你的问题,请参考以下文章

关于jsp的总结

[原创]java WEB学习笔记17:关于中文乱码的问题 和 tomcat在eclipse中起动成功,主页却打不开

Tomcat学习笔记

Tomcat使用教程(超详细)

Servlet——Java Web Application及Servlet生命周期

Tomcat的目录结构