第一章Web开发基础知识(简单描述)表单(续)表单元素<FORM method ="[GET|POST] action ="URL">form body</FORM><FORM>元素括起整个表单,并给出一些基本定义。
表单仅占用HTML文档的部分空间;实际上,一个HTML文档可以包含几个独立的、完成不同功能的表单。
method指定了信息传递给HTTP服务器的方法;action给出与处理提交信息的脚本相关的URL(如“registinfor.asp”,“registinfor.jsp”)。
表单输入元素<INPUT name="text" type="string" size=## value="text" CHECKED>☐<INPUT >用来把不同的字段放在表单里,以便用户输入信息。
☐name属性指定该字段在某个表单中的唯一名称;☐可选的value属性给出该标记的默认值。
☐在提交表单时,向Web服务器呈上以一组用“?”开头并用“&”号分开的一组“名字=值”形式的信息,如http://…/Scriptname?name=me&address=here&time=now ☐type属性给出所使用<INPUT>标记的样式,“string”可以是:☐CHECKBOX(复选框)。
☐RADIO(单选按钮)☐TEXT(单行的文本输入栏)。
☐IMAGE(图像放在表单里)☐SUBMIT(提交按钮)☐RESET(清除按钮)☐HIDDEN(在表单中保留不供显示的内容)☐FILE(上传文件)第二章Servlet开发1.什么ServletServlet是用Java语言编写的运行在服务器端的小应用程序,能够接收Web客户端的请求,并能对Web客户端进行响应,通常是通过HTTP(HyperText Transfer Protocol)协议进行工作的。
(可以认为Servlet是服务器端的一个动态Java程序,用户通过访问这个程序获取服务器的服务。
)2. Servlet的主要方法Servlet是一个Java类,通常会有3类方法,分别是:init方法,用于初始化。
destroy方法,用于释放资源。
service方法,服务类方法,对用户的请求进行处理,并对用户进行响应,几乎所有处理功能都在这里完成。
这类方法可以有多个,最常用的是doGet和doPost方法。
3. Servlet运行原理(生命周期)⏹装载Servlet:这项操作一般是动态执行。
有些服务器提供了相应的管理功能,可以在启动的时候就装载Servlet,并能够初始化特定的Servlet:⏹创建过程:创建一个Servlet实例;⏹初始化过程:调用Servlet的init()方法;⏹响应服务:如果容器接收到对此Servlet的请求,那么它调用Servlet的service()方法;⏹销毁释放资源:实例被销毁,通过调用Servlet的destroy()方法销毁Servlet 。
2.3 Servlet运行原理⏹1.Servlet的工作过程如下①Servlet容器接收到客户端的请求时,先判断用户所请求的Servlet对象是否存在。
如果不存在,则加载Servlet类、创建Servlet对象并实例化,然后调用init方法进行初始化。
②容器创建request和response对象,并且创建一个线程,调用Servlet对象的service方法(间接调用doGet方法或者doPost方法)。
③service方法产生响应,容器将响应发回客户端。
④容器销毁reqeust和response对象以及相应的线程。
⏹注意:☐加载Servlet类、创建对象、调用初始化方法init和销毁方法destroy都只有一次。
☐当Web应用被卸载或者服务器被关闭的时候,系统卸载Servlet,调用destroy方法释放资源。
⏹2.Servlet的加载有两种方式:☐第一次请求的时候加载。
☐服务器启动的时候加载。
2.4开发Servlet基本流程开发一个Servlet程序基本包括以下几步:(1)编写Servlet1、引入用到的包,需要的导入的包有:javax.servlet.*,javax.servlet.http.*等2、定义类的基本框架并继承HttpServlet3、重写成员方法。
如果需要对Servlet进行初始化,需要重写init方法。
如果需要在卸载Servlet的时候执行一些功能,可以重写destory方法。
一般情况下,根据需要完成的功能只需要重写服务类方法即可。
服务类方法包括doGet方法和doPost方法等。
import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestServlet extends HttpServlet {public void init() throws ServletException {}//Process the HTTP Get requestpublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}}Servlet中获取参数:隐含对象RequestString request.getParamter(参数名称);例子:String userName=“”;userName=request.getParameter(“username”);System.out.println(“userName”+userName);下面是一个具体事例: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;public class HelloServlet extends HttpServlet {public HelloServlet() {super();}public void destroy() {super.destroy();}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");String name=request.getParameter("name");PrintWriter out = response.getWriter();if(name!=null){out.write("Hello"+name+"!");}out.flush();out.close();}public void init() throws ServletException {// Put your code here}}Servlet在web.xml(配置文件)每个Servlet在web.xml中都对应一对<servlet>标签和一对<servlet-mapping>标签。
其中:<servlet>标签用于声明Servlet。
其中的子标签又包括:<servlet-name>用于声明Servlet的名字,是web.xml中内部使用的名字。
<servlet-class>标签:用于声明Servlet所对应的类名。
<servlet-mapping>标签用于进行Servlet映射。
其中的子标签又包括:<servlet-name>标签:表示Servlet的名字,需要和上面<servlet>标签的<servlet-name>子标签中声明的名字保持一致。
<url-pattern>标签:用于配置Servlet的访问地址。
<servlet><servlet-name>HelloServlet</servlet-name><servlet-class>HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/servlet/HelloServlet</url-pattern></servlet-mapping>(4)部署Servlet⏹Servlet编写完成之后,需要部署到服务器才能访问,编译好的文件需要放在Web应用的WEB-INF\classes下面。
⏹利用MyEclipse创建的Servlet,成功编译后其.class文件已自动放置到WEB-INF\classes目录下。