在javaEE下学习web(在eclipse中开发动态的WEB工程,servlet的环境搭建,及servlet的一些方法)
一个简便的方法实现javaee版的eclipse开发动态的WEB工程(javaWEB项目)
1.把开发选项切换到javaEE
2. 可以在window-》shou view 中找到package explorer并把其拖到开发区的左边
(Tomcat环境搭建在这不多说)
3.在servers面板中新建Tomcat服务器,一定要关联到Tomcat安装的根目录
4.新建一个Dynamic Web Project。其中Target Runtime需选择Tomcat6.0(3)
5.开发java WEB应用
6.可以通过右击项目然后选run on server来运行WEB项目
-------------------------------------------------------------------------------------------------------------------------
建立动态的web项目的具体步骤:
打开javaEE版本的eclipse,切换到javaEE,File->new->Dynamic Web Project->填写动态web工程名->Target runtime选择Tomcat6.0(3)->finish;
在src目录下可以建立java类,及包,下面就是src目录下面建立的类:
package com.lanqiao.javatest;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class HServlet implements Servlet{
/*
* 建立第一个servlet:
* servlet是一个接口,是运行在服务器端的java骨架;
* 首先创建一个Servlet类的构造器,然后在WEB-INF下的we.xml配置和映射文件
*
* Servlet容器:运行Servlet,JSP,Filter,等的软件环境
* 可以来创建Servlet,并调用Servlet的相关周期方法;
*
* Servlet生命周期的方法,生命周期相关的方法:一下方法都是Servlet容器负责调用
* 1.构造器:只被调用一次,只有第一次请求Servlet时,创建Servlet实例,调用构造器,这说明Servlet是单实例的!
* 2.init的方法:只被调用一次,在创建好实例后立即被调用。用于初始化Servlet;
* 3.servlet:被多次调用,每次请求都会调用Servlet方法,实际用于调用请求的;
* 4.destroy方法:只被调用一次,在当前Servlet所在的WEB应用被卸载前调用,用于释放当前Servlet所占用的资源。
*
* load-on-startup(配置参数):可以指定Servlet被创建的时机;
* 配置在Servlet节点中;
* <servlet>
<servlet-name>secondServlet</servlet-name>
<servlet-class>com.lanqiao.javatest.SecondServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
* 其数值越小越被被早创建
*
* */
@Override
public void destroy() {
System.out.println("destroy");
}
/*
* ServletConfig:封装了Servlet的配置信息,并且可以获取ServletContext对象,其有四个方法;
* 配饰Servlet初始化参数,必须在load-on-startup的前边配置
* 1.获取初始化参数
* getInitParameter(String name):获取指定参数名的初始化参数
* 2.getInitParameterNames():获取参数名组成的Enumeration 对象。
* 3.getServletName() :获取servlet(在web.xml中起的名字)名字的方法
*
* 4.getServletContext():获取servletContext;Context为上下文,获取servlet的上下文;
* servletContext:可以认为是WEB应用的大管家,可以从中获取到当前WEB应用的各个方面的信息:
* (1):获取当前WEB应用的初始化参数(被所有的servlet的使用的)
* 先配置再获取(在web.xml中配置)
* (2):获取当前WEB应用的某一文件的绝对路径
* getRealPath(String Path)
* (3):获取当前WEB应用的名称:getContextPath()
* (4):获取当前WEB应用的某一文件对象的输入流
* getResourceAsStream("jdbc.properties"):文件是在src目录下的文件
* getResourceAsStream("/WEB-INF/classes/jdbc.properties"):第二种方法
* */
@Override
public ServletConfig getServletConfig() {
System.out.println("getservletconfit");
return null;
}
@Override
public String getServletInfo() {
System.out.println("getservletinfo");
return null;
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init");
String user=servletConfig.getInitParameter("user");
System.out.println("user:"+user);
Enumeration<String> names=servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name=names.nextElement();
String value=servletConfig.getInitParameter(name);
System.out.println("name:"+name+"\t"+"value:"+value);
}
//获取servlet(在web.xml中起的名字)名字的方法
String servletName=servletConfig.getServletName();
System.out.println(servletName);
//获取servletContext对象;
ServletContext servletContext=servletConfig.getServletContext();
String driver=servletContext.getInitParameter("driver");
System.out.println("driver:"+driver);
Enumeration<String> names2=servletContext.getInitParameterNames();
while(names2.hasMoreElements()){
String name=names2.nextElement();
String value=servletContext.getInitParameter(name);
System.out.println("name:"+name+"\t"+"value:"+value);
}
//获取当前WEB应用的某一文件的绝对路径(一定是根目录下的:即是WebContent下的)
String realPath=servletContext.getRealPath("/javaee.test");
System.out.println(realPath);
//获取当前WEB应用的名称:getContextPath()
String contextPath=servletContext.getContextPath();
System.out.println(contextPath);
//获取当前WEB应用的某一文件对象的输入流,其中文件在src目录下建立的
try {
ClassLoader classLoader=getClass().getClassLoader();
InputStream is=classLoader.getResourceAsStream("jdbc.properties");
System.out.println("1:"+is);
} catch (Exception e) {
e.printStackTrace();
}
//第二种方法:
try {
InputStream is2=servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
System.out.println("2:"+is2);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("servlce");
}
public HServlet(){
System.out.println("helloworld");
}
}
-------------------------------------------------------------------------------------------------------------
在WebContent->WEB-INF->lib->web.xml(已经存在)建立配置文件,下面就是在web.xml中的一些配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<!-- 配置当前WEB应用的初始化参数 (可以写好多个,是全局的)-->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
<param-name>jdbcUrl</param-name>
<param-value>jdbc:mysql:///test</param-value>
</context-param>
<!-- 配置和映射Servlet(一定要有的) -->
<servlet>
<servlet-name>HServletttt</servlet-name>
<servlet-class>com.lanqiao.javatest.SecondServlet</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<!-- 映射 -->
<servlet-mapping>
<servlet-name>HServletttt</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>seServlet</servlet-name>
<servlet-class>com.lanqiao.javatest.HServlet</servlet-class>
<!-- 配置Servlet的初始化参数 (局部的)-->
<init-param>
<!-- 分别是初始化参数名字,初始化参数值 -->
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123lxn</param-value>
</init-param>
<!-- 可以指定Servlet创建的时机 -->
<load-on-startup>2</load-on-startup>
</servlet>
</web-app>
在javaEE下学习web(在eclipse中开发动态的WEB工程,servlet的环境搭建,及servlet的一些方法)的更多相关文章
- (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(七)——eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -&g ...
- Maven学习总结(七)——eclipse中使用Maven创建Web项目
一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如下图所示:
- 转】Maven学习总结(七)——eclipse中使用Maven创建Web项目
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4054814.html 感谢! 一.创建Web项目 1.1 选择建立Maven Project 选择File -& ...
- Maven学习总结(7)——eclipse中使用Maven创建Web项目
Maven学习总结(七)--eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如 ...
- Maven——eclipse中使用Maven创建Web项目
原文:http://www.cnblogs.com/xdp-gacl/p/4054814.html 一.创建Web项目 1.1 选择建立Maven Project 选择File -> New - ...
- 利用Eclipse中的Maven构建Web项目(三)
利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.依据Dynamic W ...
- 在eclipse中使用Maven建web工程项目
在eclipse中使用Maven建web工程项目: 第一种方式: 右键新建maven工程,勾选创建一个简单工程 填入信息,注意打包方式要改为war 点击完成,创建完的工程目录如下: 项目中没有WEB- ...
- eclipse中build path与Web Deployment Assembly的作用,区别
转自:https://blog.csdn.net/heart_mine/article/details/79402792 以下内容只为做个笔记记录已下,有问题可以留言,欢迎补充. 今天在eclipse ...
- 在eclipse中使用Maven建web工程的两种方式
Eclipse版本:Neon Release (4.6.0) Maven版本:3.3.9 第一种方式: 右键新建maven工程,勾选创建一个简单工程 填入信息,注意打包方式要改为war 点击完成,创建 ...
随机推荐
- Java基础之写文件——将多个字符串写入到文件中(WriteProverbs)
控制台程序,将一系列有用的格言写入到文件中. 本例使用通道把不同长度的字符串写入到文件中,为了方便从文件中恢复字符串,将每个字符串的长度写入到文件中紧靠字符串本身前面的位置,这可以告知在读取字符串之前 ...
- FtpWebRequest FTP异步下载、异步上传文件
异步下载: public interface IPrimaryKey<T> { T GetKey(); } public class DownloadInfo : IPrimaryKey& ...
- dlopen、dlsym和dlclose的使用
在dlopen()函数以指定模式打开指定的动态链接库文件,并返回一个句柄给dlsym()的调用进程.使用dlclose()来卸载打开的库. dlopen: dlopen() The function ...
- 解决xcode6_beta没有代码提示的方法
在beta版本的xcode6中我们会发现代码提示不怎么好使,但是看一些老外的视频,他们的代码提示却又是赶赶的.这是为什么呢?其实解决办法也很简单.就是在项目中不出现中文字符就好了.有的同学说,我没用中 ...
- .NET: C#: Datetime
比较简单的类,一般用到它的属性.经常会用到的是DateTime.Now和DateTime.Now.TimeOfDay; using System; using System.Collections.G ...
- C#Windows窗体应用程序MyKTV项目
后台管理其中有一个添加歌手信息和歌曲信息的窗体要点击按钮并上传文件,因为对那些文件流什么的不懂,所以用了老师教的最简单的判断方法,但此方法只是按后缀名判断文件的样式,如果后缀名乱改就不行了! 此时需要 ...
- 玩转HTML5移动页面(动效篇)(转载)
本文转载自: 玩转HTML5移动页面(动效篇)
- logstash的性能测试
logstash有简单的批量生成插件.generator.详情见官网:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-g ...
- 省市区三级联动(二)JS部分简单版
通过对上一篇<省市区三级联动>的学习发现JScript部分省市区的填充代码几乎相同,所以可以写成一个函数. 注意:html部分和chuli.php部分不变 1.下拉列表填充可以写成带参数的 ...
- HTML5,超级链接
<a href="http://h123.date">预算控制系统</a><<br><a href="2.html&quo ...