社区
Java
帖子详情
为什么在jbuilder中提示:javax.servlet.http.HttpServletRequest 类不存在,我该怎么设置,我使用的是:j2sdk1.4.2_04
xieyj
2004-07-05 04:52:07
rt
...全文
126
3
打赏
收藏
为什么在jbuilder中提示:javax.servlet.http.HttpServletRequest 类不存在,我该怎么设置,我使用的是:j2sdk1.4.2_04
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoysh
2004-07-05
打赏
举报
回复
去找个 servlet.jar下载吧
xieyj
2004-07-05
打赏
举报
回复
就是在 import 时,javax.后列表中找不到 servlet
xiaoysh
2004-07-05
打赏
举报
回复
import javax.servlet.*;
import javax.servlet.http.*;
Struts原理、开发及项目实施
Struts原理、开发及项目实施
Holen 2002-9-12
1、 摘要
2、 关键词
3、 Framework
4、 Struts的起源
5、 Struts工作原理
6、 Struts安装
7、 一个实例
8、 Struts优缺点
9、 Struts项目实施经验
10、 总结
11、 参考文献
1、 摘要
本文主要讲述了Struts(以Struts1.0.2为例)的工作原理,安装以及配置方面的问题。然后结合一个实例,详细讨论了Struts在实际开发过程
中
的应用,最后提供一些在开发过程
中
积累的经验,供大家参考。
2、关键词
Struts、MVC、
J2
EE、Tiles、Framework
3、Framework
Framework即架构(框架),这里指软件的架构方式,为什么要提Framework呢?请允许我从
J2
EE讲起。
J2
EE体系包括JSP、
Servlet
、EJB、WEB SERVICE等多项技术。这些技术的出现给电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来,形成一个适应项目需要的稳定架构是项目开发过程
中
一个非常重要的步骤。
此步骤一般主要由架构设计师完成,设计师将根据项目需求,对
J2
EE体系
中
的各处技术进行筛选取舍,并考虑到开发过程
中
的角色分工、后期的运行维护,以及系统扩展性等诸多因素,建立系统的架构。
一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是其
中
之一,Struts是流行的基于
J2
EE的架构方案,其他常用的基于
J2
EE的架构方案还有Turbine、RealMothods等。
4、Struts的起源
Struts最早是作为Apache Jakarta项目的组成部分问世运做。项目的创立者希望通过对该项目的研究,改进和提高
Java
Server Pages (JSPs)、
Servlet
、标签库以及面向对象的技术水准。当前最高发行版本为Struts1.0.2,可以到
http
://jakata.apache.org/Struts下载。
Struts这个名字来源于在建筑和旧式飞机
中
使用
的支持金属架。它的目的是为了帮助你减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其
中
一些繁重的工作。如果想混合
使用
Servlet
s和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
5、Struts工作原理
MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图1所示:
Struts 是MVC的一种实现,它将
Servlet
和 JSP 标记(属于
J2
EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据
J2
EE的特点,做了相应的变化与扩展。Struts的工作原理,如下图2所示:
控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts
中
,承担MVC
中
Controller角色的是一个
Servlet
,叫Action
Servlet
。Action
Servlet
是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的
HTTP
请求的入口点。它截取和分发这些请求到相应的动作
类
(这些动作
类
都是Action
类
的子
类
)。另外控制组件也负责用相应的请求参数填充 Action From(通常称之为FromBean),并传给动作
类
(通常称之为ActionBean)。动作
类
实现核心商业逻辑,它可以访问
java
bean 或调用EJB。最后动作
类
把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。
视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
模型:模型以一个或多个
java
bean的形式存在。这些bean分为三
类
:Action Form、Action、
Java
Bean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean
中
的相关信息,并做出相关的处理,一般是调用
Java
Bean或EJB等。
流程:在Struts
中
,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml
中
的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml
中
配置。
核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。这在后面还会详细讨论。
6、Struts安装
Struts的安装比较简单,下面的以Tomcat 4.0.4为例,讲述安装过程。
首先请到
http
://jakarta.apache.org/Struts下载Struts,建议
使用
release版,现在最高版本为1.0.2,下载后得到的是一个ZIP文件。
将ZIP包解开,可以看到这个目录:lib和webapps,webapps下有一些WAR文件。
假设你的Tomcat装在c:\Tomcat下,则将那些WAR文件拷贝到C:\Tomcat\webapps,重新启动Tomcat即可。
打开浏览器,在地址栏
中
输入:
http
://localhost:8080/Struts-example/index.jsp,若能见到“powered by Struts”的深蓝色图标,即说明成功了。这是Struts自带的一个例子,附有详细的说明文档,可以做为初学者的入门教程。
另外,Struts还提供了一系统实用对象:XML处理、通过
Java
reflection APIs自动处理
Java
Beans属性、国际化的
提示
和消息等。
7、一个实例
一个用户注册系统,用户通过网页输入相关信息:注册ID号,密码,EMAIL,若注册成功,则返回成功
提示
信息,反之出现注册失败
提示
信息。
以下是相关文件的部分核心代码。
项目建立:
正式开发前,需要在Tocmat(我的tomcat装在c:\tomcat)
中
建立此项目。
比较快的一种建立方式为:
在C:\tomcat\webapps下新建目录test,再将C:\tomcat\webapps\struts-example下的
WEB-INF目录拷贝到test目录下,然后将test\WEB-INF下的src和classes目录清空,以及struts-config.xml文件
中
内容清空即可。这样,我们需要的Struts
类
包及相关的配置文件就都齐了。
开发时,将JSP文件放在test目录下,
Java
原文件放在test\WEB-INF\src下,编译后的
类
文件放在test\WEB-INF\classes下。
注册页面:reguser.jsp
<%@ page contentType="text/html;charset=UTF-8" language="
java
" %>
<%@ taglib uri="/WEB-INF/Struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/Struts-html.tld" prefix="html" %>
RegUser
Logname:
Password:
E-mail:
此JSP页面不同于普通的JSP页,因为它大量运用了taglib,这些taglib对初学者而言,可能难于掌握,可这却是Struts的精华之一。灵活运用,将大大提高开发效率。
Struts-config.xml:
type="org.cjea.Struts.example. RegUserForm "/>
type=" org.cjea.Struts.example.RegUserAction "
attribute=" regUserForm "
scope="
request
"
validate="false">
Struts的核心是Controller,即Action
Servlet
,而Action
Servlet
的核心就是Struts-config.xml,Struts-config.xml集
中
了所有页面的导航定义。对于大型的WEB项目,通过此配置文件即可迅速把握其脉络,这不管是对于前期的开发,还是后期的维护或升级都是大有裨益的。掌握Struts-config.xml是掌握Struts的关键所在。
FormBean:RegUserForm
package org.cjea.Struts.example;
import
java
x.
Servlet
.
http
.
Http
Servlet
Request
;
import org.apache.Struts.action.ActionForm;
import org.apache.Struts.action.ActionMapping;
public final class RegUserForm extends ActionForm{
private String logname;
private String password;
private String email;
public RegUserForm(){
logname = null;
password = null;
email = null;
}
public String getLogName() {
return this.logname;
}
public void setLogName(String logname) {
this.logname = logname;
}
public void setPassWord(String password) {
this.password = password;
}
public String getPassWord() {
return this.password;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return this.email;
}
public void reset(ActionMapping mapping,
Http
Servlet
Request
request
)
{
logname = null;
password = null;
email = null;
}
}
每一个FormBean 都必须继承ActionForm
类
,FormBean是对页面请求的封装。即把
HTTP
request
封装在一个对象
中
,需要说明的一点就是多个
HTTP
request
可以共用一个FormBean,便于维护和重用。
ActionBean:RegUserAction
package org.cjea.Struts.example;
import
java
x.
Servlet
.
http
.*;
import org.apache.Struts.action.*;
public final class RegUserAction extends Action
{
public ActionForward perform(ActionMapping mapping,
ActionForm form,
Http
Servlet
Request
req,
Http
Servlet
Response res)
{
String title = req.getParameter("title");
String password = req.getParameter("password");
String email = req.getParameter("email");
/*
取得用户请求,做相应数据库操作,略
*/
}
}
FormBean的产生是为了提供数据给ActionBean,在ActionBean
中
可以取得FormBean
中
封装的数据,经相应的逻辑处理后,调用业务方法完成相应业务要求。
Servlet
的演变:在常规的 JSP,
Servlet
,
Java
Bean三层结构
中
,JSP实现View的功能,
Servlet
实现Controller的功能,
Java
Bean实现Model的实现。
在Struts
中
,将常规情况下的
Servlet
拆分与Action
Servlet
、FormBean、ActionBean三个部分。Action
Servlet
配合Struts-config.xml,专职完成页面导航,而不再负责具体的数据获取与相应逻辑,这两部分功能由FormBean和ActionBean来完成。
8、Struts优缺点
优点:
Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。
除此之外,Struts的优点主要集
中
体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了
使用
JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。
缺点:
Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。
Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。
Struts从产生到现在还不到半年,但已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的
J2
EE MVC实现方式,如果你的系统准备采用
J2
EE MVC架构,那么,不妨考虑一下Struts。
9、Struts项目实施经验
前段时间,我们基于Struts架构(结合Tiles),开发了一个WEB应用。以下是我们在项目过程
中
积累的一些经验和吸取的教训,望对各位有所帮助。
1、 基于Struts架构的项目开发,首先需要有一个很好的整体规划,整个系统
中
包括哪几个模块,每个模块各需要多少FormBean和ActionBean等,而且最好有专人负责Struts-config.xml的管理。开发基于Struts的项目的难点在于配置管理,尤其是对Struts-config.xml的管理。
2、 如果你的项目非常紧,并且项目组
中
又没有富有经验的Struts开发人员,建议不要冒然采用Struts。Struts的掌握需要一个过程,对于一个熟练的JSP程序员,自学大概需要半个月左右的时间。如果结合titls,则需要更长的时间。
3、 如果你在网页
中
大量运用taglib,那么你的美工将做出部分牺牲。当你结合Tiles,功能增强的同时,这种牺牲尤为明显。当然,你对功能和美观的取舍由你自己决定。
4、 Taglib是一个好东西,但灵活运用它却需要一个过程,如果你不想在Taglib上花太多的时间,那么只需理解与FORM有关的几个标记,其它的标记就放着吧,以后再看,先去研究Action
Servlet
和Struts-config.xml,你会觉得很有成就感。
5、 Struts的诞生时间虽不长,但与之相关的工具却越来越多,如果你是用J
builder
作为开发工具,那我可以为你推荐几款优秀的open tools,极大的提高开发效率。
6、 Struts是否只适合于大型项目呢?No!Struts适合于各种大小的项目,当然,对于大型项目,它所体现出来的优势更加明显。
10、总结
Struts是一种优秀的
J2
EE MVC架构方式。它利用taglib获得可重用代码和抽象
Java
代码,利用Action
Servlet
配合Struts-config.xml实现对整个系统导航。增强了开发人员对系统的整体把握,提高了系统的可维护性和可扩充性。
11、参考文献
1、 《Struts-documentation》
2、 《当前流行的
J2
EE WEB应用架构分析》 龚永生 IBM开发者网站
3、 《Struts,MVC 的一种开放源码实现用这种
Servlet
和JSP框架管理复杂的大型网站》Malcolm G. Davis IBM开发者网站
4、 《Jakarta Struts Book Review Project》 Chuck Cavaness Theserverside连载
Java
Web知识点
文章转自:
http
s://www.cnblogs.com/darren
04
15/p/6
04
0894.html Darren丶阿新 1、Tomcat的优化经验 答:去掉对web.xml的监视,把JSP提前编辑成
Servlet
;有富余物理内存的情况下,加大Tomcat
使用
的JVM内存。 2、什么是
Servlet
? 答:可以从两个方面去看
Servlet
: a、API:有一个接口serv...
基于Web的酒店客房管理系统的设计与实现+论文+开题
博主介绍:✌在职
Java
研发工程师、专注于程序设计、源码分享、技术交流、专注于
Java
技术领域和毕业设计✌项目名称基于Web的酒店客房管理系统的设计与实现系统说明3.2.1 用户模块功能分析前台模块应主要包括用户登录模块、用户注册模块、查看客房信息模块、客房预定 模块、用户留言模块、充值模块和个人信息维护模块。用户登录模块:用户通过输入注册的的账号和密码,然后进行身份验证,匹配成功 后实现登录功能。用户注册模块:用户输入合法的账号和密码可以实现注册功能。 查看客房信息模块:用户可以通过首页查看客房的价格,图片,详情等信息,从而 可以选择想要预定的房间。 客房预定模块:用户选择自己想要预定的客房后,可以通过输入相关信息进行订房操作。用户留言模块:用户可以向管理员发送留言。 充值模块:用户可以通过添加银行卡再为自己进行充值操作。 个人信息维护模块:用户可以修改自己的姓名、密码、身份证号等信息,还可以查看自己的订单。3.2.2 管理员模块功能分析对于管理员而言,一个好的管理系统总是能让酒店的管理工作事半功倍[7]。管理员 能够通过这个系统对自己的酒店情况一目了然,应该包括客户留言模块、客房管理模 块、订房信息管理模块、入住信息管理模块、统计分析模块、酒店新闻管理模块、会 员信息管理模块、员工信息管理模块、系统用户管理模块、个人信息维护模块。客户留言模块:管理员可以查看并回复用户的留言。客房管理模块:管理员可以管理客房信息,可以添加新的客房,删除已经停用的客房信息,还可以修改现有的客房信息。订房信息管理模块:管理员可以处理用户的订房请求,为用户办理入住手续。入住信息管理模块:对于没有注册的线下客户,也可以办理入住手续。统计分析模块:可以对酒店所有的入住信息进行记录和总结分析。酒店新闻管理模块:管理员可以更新网站上的新闻公告,展示图片等信息。会员信息管理模块:管理员可以查看到所有的注册会员信息,可以对会员信息进行删除,修改,添加操作。员工信息管理模块:管理员可以查看到自己公司所有的员工信息,而且还可以对员工的相关信息进行管理。系统用户管理模块:管理员可以查看到所有的系统管理员信息并对管理员信息进行管理。个人信息维护模块:管理员可以更改自己的登录密码或者是姓名、性别、手机号等 相关个人信息。编辑 环境需要1.运行环境:最好是
java
jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本;6.是否Maven项目:否;技术栈1. 后端:Spring+SpringMVC+Mybatis2. 前端:JSP+CSS+
Java
Script+jQuery
使用
说明1.
使用
Navicat或者其它工具,在mysql
中
创建对应名称的数据库,并导入项目的sql文件;2.
使用
IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;3. 将项目
中
springmvc-
servlet
.xml配置文件
中
的数据库配置改为自己的配置;4. 运行项目,在浏览器
中
输入
http
://localhost:8080/ 登录运行截图编辑编辑编辑编辑编辑编辑编辑编辑编辑编辑编辑编辑编辑编辑编辑 用户管理控制层:package com.houserss.controller;import
java
x.
servlet
.
http
.
Http
Session;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.
Request
Mapping;import org.springframework.web.bind.annotation.
Request
Method;import org.springframework.web.bind.annotation.
Request
Param;import org.springframework.web.bind.annotation.ResponseBody;import com.houserss.common.Const;import com.houserss.common.Const.Role;import com.houserss.common.ServerResponse;import com.houserss.pojo.User;import com.houserss.service.IUserService;import com.houserss.service.impl.UserServiceImpl;import com.houserss.util.MD5Util;import com.houserss.util.TimeUtils;import com.houserss.vo.DeleteHouseVo;import com.houserss.vo.PageInfoVo;/** * Created by admin */@Controller@
Request
Mapping(/user/)public class UserController if (ip != null && ip.length() > 0) String[] ips = ip.split(,);for (int i = 0; i
JSP程序设计复习题库(客观题)
一、选择题 1、下面哪一个不是JSP本身已加载的基本
类
?(B ) A、
java
.lang.* B、
java
.io.* C、
java
x.
servlet
.* D、
java
x.
servlet
.jsp.* 2、以下关于
Java
Bean的说法
中
,错误的是(B) A、
Java
Bean是基于JA V A语言的。 B、
Java
Bean是JSP的内置对象之一。 C、
Java
Bean是一种
Java
类
。 D、
Java
Bean是一个可重复
使用
的软件组件。 3、下面的说法错误的是:(D) A Jsp可以处理动态内容和静态内容 B 在
面试题 学校
1. super()与 this()的区别?This():当前
类
的对象,super 父
类
对象。Super():在子
类
访问父
类
的成员和行为,必须受
类
继承规则的约束而 this 他代表当前对象,当然所有的资源都可以访问.在构造函数
中
,如果第一行没有写 super(),编译器会自动插入.但是如果父
类
没有不带参数的构造函数,或这个函数被私有化了(用 private 修饰).此时你必须加入对父
类
的实例化构造...
Java
50,523
社区成员
85,601
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章