在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基础之集合框架——使用真的的链表LinkedList<>(TryPolyLine)
控制台程序. public class Point { // Create a point from its coordinates public Point(double xVal, double ...
- JAX-WS(三)构建简单webservice部署到tomcat上
前言: 虽然构建本地的jax-ws的webservice很简单,但要部署到tomcat上要绕过点弯. tomcat本身和jdk都没有jaw-ws的API,所以部署的时候需要额外做点事情,有两种选择 1 ...
- SqlServer常用命令
dbcc showfilestats 显示数据库空间占用情况 sp_spaceused tb_Test 显示表占用情况 如果包含有非dbo的Scheme,需要特殊处理,比如我们表tb_Test所使用的 ...
- leetcode 116- Populating Next Right Pointers in Each Node
题目: Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode ...
- angular 和jq 的AJAX的请求区别
最近项目中使用angular,结果发现后台没法获取参数,所以,稍微研究了一下两者在发送ajax时的区别. 注意angular和jquery的ajax请求是不同的. 在jquery中,官方文档解释con ...
- HDU 4834 JZP Set(数论+递推)(2014年百度之星程序设计大赛 - 初赛(第二轮))
Problem Description 一个{1, ..., n}的子集S被称为JZP集,当且仅当对于任意S中的两个数x,y,若(x+y)/2为整数,那么(x+y)/2也属于S.例如,n=3,S={1 ...
- 浅谈JavaScript计时器
JavaScript计时器 1.什么是JavaScript计时器? 在JavaScript中,我们可以在设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行. 2.计时器类型 一次性计时器:仅在 ...
- MVC3/4 自定义HtmlHelper截断文本内容(截取)
在MVC目录下新建一个名为 Extersions 的文件夹,在该文件夹中新建一个截断文本类,取名为:CutOfTextExtersions 该类代码如下: using System; using S ...
- 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。
在用asp.net MVC3 的MusicStore时候 Edit某个数据项时提示下面的错误: 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能被修改或删除.刷新 ObjectSt ...
- JS中数组的操作
1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...