(转)JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
【声明】
欢迎转载,但请保留文章原始出处→_→
文章来源:http://www.cnblogs.com/smyhvae/p/4134921.html
【开发环境】
物理机版本:Win 7旗舰版(64位)
jdk版本:jdk1.8.0_20
MyEclipse版本:10.7.1
Tomcat版本:apache-tomcat-7.0.57
一、Servlet的基本概念:
Servlet是sun提供的一种动态web资源开发技术.本质上就是一段java小程序.可以将Servlet加入到Servlet容器中运行.
- Servlet容器:能够运行Servlet的环境就叫做Servlet容器. --- tomcat
- web容器:能够运行web应用的环境就叫做web容器 --- tomcat
Servlet的基本运行方式:
Servlet没有main()方法。它们受控于另一个Java应用(例如Tomcat),这个Java应用称为Sevlet容器,Tomcat就是这样一个容器。通常我们把Tomcat也叫做Servlet容器。
Servlet默认是以多线程模式执行的。
注:JSP是为了方便写html代码和Java代码,它的本身其实还是Servlet。
二、MyElipse的配置:
1、选择工作空间:只要切换了工作空间,所有的配置全部清零。
2、配置jdk:
选择菜单栏Windows-->Preferences,选择标签Java-->Installed JREs,界面如下:
上图中,可以看到,MyEclise有自带的jdk,那我们还是使用自己安装的jdk吧,单击上图中的“add”按钮,弹出如下界面:
上图中,选择自己安装的jdk路径,然后finish,继续:
3、配置工作空间的编码:从此之后你创建的任何项目中的文本文件默认编码都是utf-8
选择菜单栏Windows--preferences,选择标签General-->Workspace,如下:
4、改字体:
三、使用MyEclipse创建Web工程:
1、MyEclipse指定Tomcat:
选择菜单栏Window-->Preferences,选择标签MyEclipse-->Servers-->Tomcat,然后:
上图中,选择自己的Tomcat目录,记得一定要选中红框部分的"Enable"。
检查运行的jdk:
同时,我们关闭MyEclipse自带Tomcat:
2、MyEclipse创建Web项目:
上图中的Context root URL指的是外部访问的虚拟路径,点击finish,继续:
上图中,选择“no”即可。如果选择“yes”也行,就会用6.0来编译,而不是5.0。继续:
上图中,是让你从Java视图切换成MyEclipse视图,选择“yes”。
新建的工程,目录结构如下:
- WebTest:web工程的名称,该工程部署时,在webapps目录下就会有一个example的web应用
- src目录:Java程序的开发目录,该目录下编写的所有程序在部署时,会自动部署到example/web-inf/classes目录下。
- WebRoot目录:webroot对应于web应用的根目录,该目录下的所有子目录和子文件在部署时,会原封不动的发布到web应用目录下。
如果需要修改这个Web工程的对外访问路径Context Root,可以右键这个项目,选择Properties,选择MyEclipse-->Web标签:
在上图红框部分进行需改就行了。
3、MyEclipse发布Web项目到Tomcat下:
选择上图中的按钮(菜单栏下方),提示文字为:Deploy Project to Server,弹出如下界面:
上图中,选择add,继续:
上图中,选择我们之前Tomcat,就行了。
当然了,还有另外一种方式可以发布到Tomcat,方法是:右键工程文件,效果如下:
项目一旦发布到Tomcat,就会马上把项目的WebRoot目录copy到Tomcat的webapps目录下,并把WebRoot重命名为项目名称,即WebTest:
发布之后,如果想在网页上看效果,需要先运行Tomcat:
然后在网址输入url就行了:
四、创建Servlet的一般步骤:
Servlet的框架组成:
Servlet框架是由两个Java包组成:Javax.servlet和Javax.servlet.http。Servlet的框架的核心里Javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。
步骤:
- 新建一个类实现sun公司定义的Servlet接口
- 将写好的类配置到tomcat中的web应用的web.xml中(配置对外访问路径)
注1:为了理解过程,下面的方式一是新建一个class文件作为Servlet,然后手动配置Web.xml。其实,实际开发中,直接新建Servlet文件(方式二),就能一步到位,Web.xml会自动配置好。
注2:Tomcat内置Servlet的jar包。
1、方式一:新建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行),否则会出现如下错误的页面:
2、方式二:新建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的开发流程。
(转)JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置的更多相关文章
- JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140877.html [正文] 一.ServletConfig:代表当前 ...
- (转)JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140877.html [正文] 一.ServletConfig:代表当前 ...
- JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4134921.html [开发环境] 物理机版本:Win 7旗舰版(64位 ...
- JavaWeb学习之Servlet(二)----Servlet的生命周期、继承结构、修改Servlet模板
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140466.html 一.http协议回顾: 在上一篇文章中:JavaW ...
- (转)JavaWeb学习之Servlet(二)----Servlet的生命周期、继承结构、修改Servlet模板
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140466.html 一.http协议回顾: 在上一篇文章中:JavaW ...
- JavaWeb学习——了解Servlet
JavaWeb学习——了解Servlet 摘要:本文主要学习了什么是Servlet,以及如何使用Servlet进行开发. 基础知识 背景 随着互联网技术的发展,基于HTTP和HTML的web应用急速增 ...
- JavaWeb学习之Servlet(三)----Servlet的映射匹配问题、线程安全问题
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140529.html 一.Servlet映射匹配问题: 在第一篇文章中的 ...
- (转)JavaWeb学习之Servlet(三)----Servlet的映射匹配问题、线程安全问题
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140529.html 一.Servlet映射匹配问题: 在第一篇文章中的 ...
- javaweb学习之Servlet开发(二)
javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个< ...
随机推荐
- XMind思维导图使用笔记
首先新建一个空白的图 以组织结构图(向下) 为例 1.双击组织结构图 创建一个空白的页面 2.随便选择一个风格 这时候出现工作台 现在里面只有一个中心主题 正文部分开始 1.如果想要添加一个子主题 ...
- 论文阅读笔记二十五:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)
论文源址:https://arxiv.org/abs/1406.4729 tensorflow相关代码:https://github.com/peace195/sppnet 摘要 深度卷积网络需要输入 ...
- gitlab原理
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 其实,说直白点写,他就是个git服务器,和github差不多,只不过,这个gitlab可 ...
- mysql集群7.4.1
一:mysql集群原理: 1 mysql集群分为三个节点: 1.1 控制节点:本身不提供服务只是控制整个集群的开启与关闭 1.2 数据节点:真正提供数据库的存储,并和其他数据节点关联用 1.3 sql ...
- PAT Basic 1065 单身狗
单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对于单身人士的 ...
- Nginx 提示host not found in upstream 错误解决方法
Nginx DNS resolver配置实例,本文讲解在proxy_pass 和 upstream server 通信的时候需要手动指定 resolver,本文就给出了配置实例. nginx 通过 ...
- 一脸懵逼学习Nginx及其安装,Tomcat的安装
1:Nginx的相关概念知识: 1.1:反向代理: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到 ...
- URL地址编码和解码
0. 参考 [整理]关于http(GET或POST)请求中的url地址的编码(encode)和解码(decode) python3中的urlopen对于中文url是如何处理的? 中文URL的编码问题 ...
- BZOJ5291/洛谷P4458/LOJ#2512 [Bjoi2018]链上二次求和 线段树
原文链接http://www.cnblogs.com/zhouzhendong/p/9031130.html 题目传送门 - LOJ#2512 题目传送门 - 洛谷P4458 题目传送门 - BZOJ ...
- eclipse里面svn比较之前版本的代码
team——显示资源历史记录比较