【声明】html
欢迎转载,但请保留文章原始出处→_→java
文章来源:http://www.cnblogs.com/smyhvae/p/4134921.htmlweb
【开发环境】apache
物理机版本:Win 7旗舰版(64位)小程序
jdk版本:jdk1.8.0_20浏览器
MyEclipse版本:10.7.1tomcat
Tomcat版本:apache-tomcat-7.0.57多线程
1、Servlet的基本概念:app
Servlet是sun提供的一种动态web资源开发技术.本质上就是一段java小程序.能够将Servlet加入到Servlet容器中运行.框架
Servlet的基本运行方式:
Servlet没有main()方法。它们受控于另外一个Java应用(例如Tomcat),这个Java应用称为Sevlet容器,Tomcat就是这样一个容器。一般咱们把Tomcat也叫作Servlet容器。
Servlet默认是以多线程模式执行的。
注:JSP是为了方便写html代码和Java代码,它的自己其实仍是Servlet。
2、MyElipse的配置:
一、选择工做空间:只要切换了工做空间,全部的配置所有清零。
二、配置jdk:
选择菜单栏Windows-->Preferences,选择标签Java-->Installed JREs,界面以下:
上图中,能够看到,MyEclise有自带的jdk,那咱们仍是使用本身安装的jdk吧,单击上图中的“add”按钮,弹出以下界面:
上图中,选择本身安装的jdk路径,而后finish,继续:
三、配置工做空间的编码:今后以后你建立的任何项目中的文本文件默认编码都是utf-8
选择菜单栏Windows--preferences,选择标签General-->Workspace,以下:
四、改字体:
3、使用MyEclipse建立Web工程:
一、MyEclipse指定Tomcat:
选择菜单栏Window-->Preferences,选择标签MyEclipse-->Servers-->Tomcat,而后:
上图中,选择本身的Tomcat目录,记得必定要选中红框部分的"Enable"。
检查运行的jdk:
同时,咱们关闭MyEclipse自带Tomcat:
二、MyEclipse建立Web项目:
上图中的Context root URL指的是外部访问的虚拟路径,点击finish,继续:
上图中,选择“no”便可。若是选择“yes”也行,就会用6.0来编译,而不是5.0。继续:
上图中,是让你从Java视图切换成MyEclipse视图,选择“yes”。
新建的工程,目录结构以下:
若是须要修改这个Web工程的对外访问路径Context Root,能够右键这个项目,选择Properties,选择MyEclipse-->Web标签:
在上图红框部分进行需改就好了。
三、MyEclipse发布Web项目到Tomcat下:
选择上图中的按钮(菜单栏下方),提示文字为:Deploy Project to Server,弹出以下界面:
上图中,选择add,继续:
上图中,选择咱们以前Tomcat,就好了。
固然了,还有另一种方式能够发布到Tomcat,方法是:右键工程文件,效果以下:
项目一旦发布到Tomcat,就会立刻把项目的WebRoot目录copy到Tomcat的webapps目录下,并把WebRoot重命名为项目名称,即WebTest:
发布以后,若是想在网页上看效果,须要先运行Tomcat:
而后在网址输入url就好了:
4、建立Servlet的通常步骤:
Servlet的框架组成:
Servlet框架是由两个Java包组成:Javax.servlet和Javax.servlet.http。Servlet的框架的核内心Javax.servlet.Servlet接口,全部的Servlet都必须实现这一接口。
步骤:
注1:为了理解过程,下面的方式一是新建一个class文件做为Servlet,而后手动配置Web.xml。其实,实际开发中,直接新建Servlet文件(方式二),就能一步到位,Web.xml会自动配置好。
注2:Tomcat内置Servlet的jar包。
一、方式一:新建class文件
(1)新建一个class文件MyServlet.java,继承子类HttpServlet:
MyServlet.java:
1 package com.vae.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 //通常实现一个Servlet,只要继承HttpServlet类便可 12 public class MyServlet extends HttpServlet { 13 @Override 14 protected void doGet(HttpServletRequest req, HttpServletResponse resp) 15 throws ServletException, IOException { 16 // TODO Auto-generated method stub 17 //super.doGet(req, resp); 18 //获取对客户端的输出流(out对象) 19 PrintWriter out = resp.getWriter(); 20 out.write(""Hello,Servlet""); 21 } 22 23 @Override 24 protected void doPost(HttpServletRequest req, HttpServletResponse resp) 25 throws ServletException, IOException { 26 // TODO Auto-generated method stub 27 //super.doPost(req, resp); 28 } 29 }
上方代码中,若是采用get请求,就能够重写doGet方法。注意要注释掉第17行的代码(父类的方法)。
其实,doPost和doGet方法实际上是在Servlet类的service()方法的内部中调用的。Tomcat已经把14行的request和response这两个参数给new好了。
19行:PrintWriter是字符打印流,这个字符流的输出源针对的是页面(向客户端输出)。
(2)Web.xml配置,配置Servlet的对外访问路径(URL):
既然这个Servlet是由Web容器启动的,那么就须要在Web.xml中进行配置,这样的话,Tomcat在启动的时候就会自动加载这个文件。
浏览器访问Web端必须经过url,因而还须要在Web.xml中 经过标签<servlet-mapping>配置一个映射的路径,一样附上别名name和路径url。
打开web.xml,添加一些代码。
web.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 5 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 6 <display-name></display-name> 7 <welcome-file-list> 8 <welcome-file>index.jsp</welcome-file> 9 </welcome-file-list> 10 11 <!-- 配置一个servlet --> 12 <servlet> 13 <servlet-name>helloServlet</servlet-name> 14 <servlet-class>com.vae.servlet.MyServlet</servlet-class> 15 </servlet> 16 17 <!-- 配置一个servlet映射的URL路径 --> 18 <servlet-mapping> 19 <servlet-name>helloServlet</servlet-name> 20 <url-pattern>/hello</url-pattern> 21 </servlet-mapping> 22 23 </web-app>
11至21行是我添加的代码。
12行至15行:Web.xml配置。一个名称映射一个类,别名能够随便取,方便在整个web.xml中引用这个Servlet(13行),但类名必须为以前定义的Servlet,含包名(14行)。
18行至21行:url配置,让浏览器经过这个url访问Web端。19行的name别名必须和13行同样,20行的"/hello"是咱们设置的url路径。
其实就是根据20行的url找到13行的别名,进而找到14行的Servlet类。
运行程序,效果以下:
注意必定要删除MyServlet.java代码中继承父类的方法:super.doGet(req, resp);、super.doPost(req, resp);(17行、27行),不然会出现以下错误的页面:
二、方式二:新建Servlet文件
注:只有在MyEcipse视图下才能新建Servlet文件,在Java视图下是不行的。
咱们来新建一个Servlet文件:
上图中,MyEclipse会自动给咱们继承父类HtpServlet,而后咱们只须要复写doGet和doPost方法就好了。点击next,继续:
MyServlet.java代码以下:
1 package com.vae.servlet; 2 3 import java.io.IOException; 4 import java.util.Date; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 public class MyServlet extends HttpServlet { 12 13 public void doGet(HttpServletRequest request, HttpServletResponse response) 14 throws ServletException, IOException { 15 //显示当前时间 16 response.getWriter().write("now time:" + new Date().toLocaleString()); 17 18 } 19 20 public void doPost(HttpServletRequest request, HttpServletResponse response) 21 throws ServletException, IOException { 22 doGet(request, response); 23 24 } 25 26 }
在网页输入url,效果以下:
上图能够看到,同一个资源,在不一样的时间、不一样的人访问的时候,是不同的,很显然Servlet是动态Web资源。
总结:完成了MyEclipse及Tomcat的配置,以及Servlet的开发流程。