按照java ee规范,一个标准的java web应用程序由以下四个部分组成:
1,项目根目录,包括各种网页文件和其他可以被用户访问的资源,如声音,图像等
2,web-inf/web.xml文件,应用程序描述符
3,web-inf/lib,所需的jar包
4,web-inf/classes,编译后的java类文件
第一个web应用程序:
在myeclipse下新建一个web项目,然后创建各种网页文件,默认位于WebRoot目录下,
结构图见下面:
主要的servlet类代码如下:
package com.qdu.sun;
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;
import javax.servlet.http.HttpSession;
public class LoginSvlt extends HttpServlet {
private String username; //页面传过来的用户名和密码
private String password;
/**
* Constructor of the object.
*/
public LoginSvlt() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
username = request.getParameter("username"); //从请求从获取用户名参数
password = request.getParameter("password");
if(username.equals("zjm")&&password.equals("123")){ //简化了,未连接数据库
HttpSession session = request.getSession(true);
session.setAttribute("username", username); //将信息保留到session中,以便下面的页面读取
response.sendRedirect("welcome.jsp");
}
else{
response.sendRedirect("error.jsp");
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
过滤器代码:
package com.qdu.sun;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
//过滤器
public class FormFilter implements Filter{
/**
* Request.java 对 HttpServletRequestWrapper 进行扩充, 不影响原来的功能并能提供所 有的
* HttpServletRequest 接口中的功能. 它可以统一的对 Tomcat 默认设置下的中文问题进行解决而只 需要用新的 Request
* 对象替换页面中的 request 对象即可.
*/
class Request extends HttpServletRequestWrapper {
public Request(HttpServletRequest request) {
super(request);
}
/**
* 转换由表单读取的数据的内码. 从 ISO 字符转到 GBK.
*/
public String toChi(String input) {
try {
byte[] bytes = input.getBytes("ISO8859-1");
return new String(bytes, "GBK");
} catch (Exception ex) {
}
return null;
}
/**
* Return the HttpServletRequest holded by this object.
*/
private HttpServletRequest getHttpServletRequest() {
return (HttpServletRequest) super.getRequest();
}
/**
* 读取参数 -- 修正了中文问题.
*/
public String getParameter(String name) {
return toChi(getHttpServletRequest().getParameter(name));
}
/**
* 读取参数列表 - 修正了中文问题.
*/
public String[] getParameterValues(String name) {
String values[] = getHttpServletRequest().getParameterValues(name);
if (values != null) {
for (int i = 0; i < values.length; i++) {
values[i] = toChi(values[i]);
}
}
return values;
}
}
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException { //过滤器主要应该实现的方法
HttpServletRequest httpreq = (HttpServletRequest) request;
if (httpreq.getMethod().equals("POST")) {
request.setCharacterEncoding("GBK");
} else {
request = new Request(httpreq);
}
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
web.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 以下是新建servlet后自动生成的关于servlet的配置 -->
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>LoginSvlt</servlet-name>
<servlet-class>com.qdu.sun.LoginSvlt</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginSvlt</servlet-name>
<url-pattern>/servlet/LoginSvlt</url-pattern>
<!-- servlet的最终访问路径是http://localhost:8080/firstWeb/servlet/LoginSvlt -->
</servlet-mapping>
<!-- 以上是新建servlet后自动生成的关于servlet的配置-->
<!-- 以下是过滤器的配置 -->
<filter>
<description>过滤器</description>
<display-name>FormFilter</display-name>
<filter-name>FormFilter</filter-name>
<filter-class>com.qdu.sun.FormFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FormFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
发布和运行Web项目,有两种发布方式,散包发布和打包发布。
散包发布一般在程序开发和测试阶段使用,Myeclipse将web项目中的文件按照java ee规范的目录结构放置在服务器的发布目录下,如Tomcat/webapps。但并非所有服务器都支持散包发布java ee规范只要求所有服务器都必须支持打包发布。
打包发布一般是应用在把web应用产品化的时候,将所有的web项目中的问卷按照java ee规范打包成单个的war文件,然后放置到服务器的发布目录下。
本实例选用Tomcat 6的散包发布
- 大小: 20.9 KB
分享到:
相关推荐
Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...
Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第05章 宠物分类展现模块的第一个动态版本实现(共31页).ppt Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第06章 用JavaBean、EL和JSTL优化...
Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...
Java Web Servlet实例是Java...通过这个简单的Java Web Servlet实例,你可以学习到如何创建、配置和使用Servlet,理解其在Web应用中的作用。实践这个实例可以帮助巩固理论知识,为后续更复杂的Web开发打下坚实基础。
3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 ...
本资源“Java Web数据库系统应用开发与实例”聚焦于使用MySQL数据库,结合jsp、servlet和javabean技术,提供了一个可以直接运行的案例,旨在帮助开发者深入理解和实践这些技术。 MySQL是一个广泛使用的开源关系型...
《Java Web开发实战1200例第I卷》是一本深入浅出的Java Web编程教程,涵盖了丰富的实例,旨在帮助读者从实践中掌握这门技术。这个压缩包包含的"1-12源码"是书中的前12个示例项目的完整源代码,为学习者提供了实际...
JAVA EE Web应用系统从逻辑上可划分为表现层、业务层和持久层,为了使读者对JAVA EE编程技术获得全面系统的了解,《Java EE Web开发实例精解》以JAVA EE Web应用系统的逻辑加构为主线,通过多个典型工程实例对上述三...
本文档是《Java Web开发实战1200例(第I卷)》(清华大学出版社.卢瀚.王春斌)一书的配套光盘。...因原光盘体积较大,但主要内容均为源程序,难以精简,所以直接将光盘内容打包成17部分,这是第1部分。
3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 ...
JavaWeb是Java技术在Web应用开发中的应用,涵盖了Servlet、JSP、JDBC、MVC框架(如Spring MVC)、JSF、WebSocket等技术。这个压缩包"34个经典javaweb项目实例.zip"提供了丰富的实践资源,对于学习者来说是宝贵的资料...
1. JSP(JavaServer Pages)与Servlet技术的应用方法:JSP是一种用于开发动态网页的技术,而Servlet是一种在服务器端运行的Java小程序,用于处理客户端请求并产生响应。这两项技术是Java Web开发的基础,本书将介绍...
Java Web 编程是计算机科学和软件工程领域中一个重要的分支,它主要关注如何利用Java语言进行Web应用的开发。通过学习这门课程,可以系统地了解Web技术的基础知识,并能够根据个人需求开发具有不同功能的网页,实现...
3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 ...
由于Java Web技术是SUN公司在Java Servlet规范中提出的通用技术,因此本书讲解的Java Web应用例子可以运行在任何一个实现了SUN的Servlet规范的Java Web服务器上。随书附赠光盘的内容为本书范例的源程序,以及本书...
这个源码包包含了作者精心设计的实例代码,旨在帮助读者更好地理解和掌握Java Web编程的核心概念和技术。 首先,Java Web编程是指使用Java语言开发Web应用的过程,它主要涉及到的技术栈包括Servlet、JSP、Java...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
由于Java Web技术是SUN公司在Java Servlet规范中提出的通用技术,因此《Tomcat与Java Web开发技术详解》讲解的Java Web应用例子可以运行在任何一个实现了SUN的Servlet规范的Java Web服务器上。随书附赠光盘的内容为...
全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...
1. **Servlet**:Servlet是Java Web开发的基础,它是一种服务器端的Java API,用于生成动态web内容。在轻量级开发中,Servlet可以作为控制器处理HTTP请求,并调用业务逻辑。 2. **JSP(JavaServer Pages)与JSTL...