㈠ JAVA Web设计
业务性多态,就是要抽象Service层,然后每个实际业务做一个ServiceImpl
一般业务性多态也同时伴随Model的多态,同样的,从数据层就要抽象。
这个设计起来是很费脑子的,而且没看到实际的东西也没法给你建议,总的来说,代码方面要这么做:
Entity(产品基类),EntityExt1,EntityExt2……(实际产品类)
Service<Entity>,实现的时候实际是ServiceImpl<EntityExt>
哦对了,数据表其实同样应该设计成继承的样子(产品基础信息表和实际的不同类型的产品表)
㈡ Java有哪些框架比较常用
常见的JAVA框架有: WAF: 全称:WEB APPLICATION FRAMEWORK 主要应用方面:EJB层,(WEB层也有,但是比较弱)。 主要应用技术:EJB等 出处: http://java.sun.com/blueprints/code/index.html 简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系统)里面的框架。是SUN蓝皮书例子程序中提出的应用框架。它实现了 MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在bea\weblogic700\samples\server\src\petstore。这是学习了解J2EE的首选框架。 免费。 Struts: 主要应用方面:WEB层。 主要应用技术:JSP,TagLib,JavaBean,XML等 出处: http://jakarta.apache.org/struts/index.html 简述:这是APACHE的开源项目,目前应用很广泛。基于MVC模式,结构很好,基于JSP。Jbuilder8里已经集成了STRUTS1.02的制作。 免费。 Turbine: 主要应用方面:WEB层。 主要应用技术:servlet等 出处: http://jakarta.apache.org/turbine/index.html 简述:这是APACHE的开源项目。基于SERVLET。据说速度比较快,基于service(pluggable implementation可插拔的执行组件)的方式提供各种服务。 免费。 COCOON: 主要应用方面:WEB层。 主要应用技术:XML,XSP,servlet等 出处: http://cocoon.apache.org/2.0/ 简述:这是APACHE的一个开源项目。基于XML,基于XSP(通俗地说,XSP是在XML静态文档中加入Java程序段后形成的动态XML文档。)。特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。 免费。 ECHO: 主要应用方面:WEB层。 主要应用技术:servlet等 出处: http://www.nextapp.com/procts/echo/ 简述:nextapp公司的一个开源项目。基于SERVLET。页面可以做的很漂亮,结合echopoint,可以作出很多图形效果(里面用了jfreechart包)。使用SWING的思想来作网页,把HTML当作JAVA的类来做。但是大量使用Session,页面分帧(Frame)很多,系统资源消耗很大。 免费。 JATO: 全称:SUN ONE Application Framework 主要应用方面:WEB层。 主要应用技术:JSP,TagLib,JavaBean等 出处: http://www.sun.com 简述:这是SUN推出的一个商业性框架,是结合SUN ONE的平台推出的。 TCF: 全称:Thin-Client Framework 主要应用方面:JAVA GUI。 主要应用技术:JAVA application等 出处: http://www.alphaworks.ibm.com/tech/tcf 简述:这是IBM出的一个框架。基于MVC模式,基于JAVA Application。
㈢ java web程序中对地址栏中文解码的方式有哪些
浏览器和服务器之间是否能传递中文取决于服务器端的解码方式。一、可以修改服务器配置文件以提供中文解码支持;二、在浏览器中对路径进行编码,如使用encodeUrl(完整路径)进行utf-8编码,服务器端用java.net.Decoder.decoder(获取传递的中文之值)进行解码,这时request.setcharacter encode()方法要设置为对应的utf-8。
㈣ java web开发的学习过程
小系统都差不多 做多了也没意义
SSH没你想象的难
只不过是有的地方不用代码写
用配置配好就可以了
知道了一次 下次就会了
框架的学习实际就是学配置
根据书上的基本概念和实例
自己反复配置 会排错
慢慢就熟悉了
坚持下去 必有所成
㈤ 简述Java web 应用的开发 环境和运行环境
1:第一是下载好Eclipse开发工具,这里不做叙述,自行下载安装。
2:使用Eclipse开发WEB项目,启动Eclipse,选择File--->new --->other--->Web--->Dynamic Web Project(动态Web项目),打开,如下图所示:
然后之后如下所示
然后之后打开New Dynamic Web Project(新建动态web项目)对话框,在该对话框的Project name(项目名称)文本框输入项目的名称,在Dynamic web mole version(动态网页模块版本)下拉列表框中选择3.0选项。其他选择默认即可。
然后单击next按钮,打开如下图所示,这里选择默认的配置即可。
然后单击next之后打开Configure web mole settings.(配置web模块设置)对话框,如下图所示,我这里默认即可。
然后点击Finish之后如下:
然后创建好的web项目如下图所示:
3:创建jsp文件(也可以选择创建其他类文件等等,这里创建jsp文件),如下图所示:
在Eclipse的项目资源管理器中,鼠标右击webcontent,可以直接选择jsp File文件,或者去Other里面选择其他的更多的文件类型。
然后打开如下图所示的界面,在File name起好名字,单击next。
然后就打开选择jsp模板的对话框,这里选择默认即可。
然后点击Finish按钮,完成jsp文件的创建,在项目资源管理器的WEB-INF节点下多了一个jsp文件。同时,Eclipse会自动以默认的与jsp文件关联的编辑器将文件在右侧的编辑窗口中打开。
㈥ 简述使用Javaweb开发管理信息系统需要做哪些基础工作
计划
对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。分析
软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。设计
软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。编写代码,实现软件要求
㈦ 简述一下Java中的web容器,举几个例子也行
目前市场上常用的开源Java Web容器有Tomcat、Resin和Jetty。其中Resin从V3.0后需要购买才能用于商业目的,而其他两种则是纯开源的。可以分别从他们的网站上下载最新的二进制包和源代码。
作为Web容器,需要承受较高的访问量,能够同时响应不同用户的请求,能够在恶劣环境下保持较高的稳定性和健壮性。在HTTP服务器领域,Apache HTTPD的效率是最高的,也是最为稳定的,但它只能处理静态页面的请求,如果需要支持动态页面请求,则必须安装相应的插件,比如mod_perl可以处理Perl脚本,mod_python可以处理Python脚本。
上面介绍的三中Web容器,都是使用Java编写的HTTP服务器,当然他们都可以嵌到Apache中使用,也可以独立使用。分析它们处理客户请求的方法有助于了解Java多线程和线程池的实现方法,为设计强大的多线程服务器打好基础。
Tomcat是使用最广的Java Web容器,功能强大,可扩展性强。最新版本的Tomcat(5.5.17)为了提高响应速度和效率,使用了Apache Portable Runtime(APR)作为最底层,使用了APR中包含Socket、缓冲池等多种技术,性能也提高了。APR也是Apache HTTPD的最底层。可想而知,同属于ASF(Apache Software Foundation)中的成员,互补互用的情况还是很多的,虽然使用了不同的开发语言。
Tomcat 的线程池位于tomcat-util.jar文件中,包含了两种线程池方案。方案一:使用APR的Pool技术,使用了JNI;方案二:使用Java实现的ThreadPool。这里介绍的是第二种。如果想了解APR的Pool技术,可以查看APR的源代码。
ThreadPool默认创建了5个线程,保存在一个200维的线程数组中,创建时就启动了这些线程,当然在没有请求时,它们都处理“等待”状态(其实就是一个while循环,不停的等待notify)。如果有请求时,空闲线程会被唤醒执行用户的请求。
具体的请求过程是: 服务启动时,创建一个一维线程数组(maxThread=200个),并创建空闲线程(minSpareThreads=5个)随时等待用户请求。 当有用户请求时,调用 threadpool.runIt(ThreadPoolRunnable)方法,将一个需要执行的实例传给ThreadPool中。其中用户需要执行的实例必须实现ThreadPoolRunnable接口。 ThreadPool首先查找空闲的线程,如果有则用它运行要执行ThreadPoolRunnable;如果没有空闲线程并且没有超过maxThreads,就一次性创建minSpareThreads个空闲线程;如果已经超过了maxThreads了,就等待空闲线程了。总之,要找到空闲的线程,以便用它执行实例。找到后,将该线程从线程数组中移走。 接着唤醒已经找到的空闲线程,用它运行执行实例(ThreadPoolRunnable)。 运行完ThreadPoolRunnable后,就将该线程重新放到线程数组中,作为空闲线程供后续使用。
由此可以看出,Tomcat的线程池实现是比较简单的,ThreadPool.java也只有840行代码。用一个一维数组保存空闲的线程,每次以一个较小步伐(5个)创建空闲线程并放到线程池中。使用时从数组中移走空闲的线程,用完后,再“归还”给线程池。
㈧ 结合java web应用开发简述什么是mvc及其优点
M----模型层 例如JavaBean
V----视图层 例如jsp 用于显示数据
C----控制层 例如action 用于处理业务逻辑
优点:各自分工,降低耦合
㈨ java web开发中常用的前后台交互技术
你列出来的几点,归根结底还是servlet。jsp会被便已成为servlet执行,struts1就不用说了,核心就是一个servlet。struts2没有直接使用servlet,而是用了一个Filter,但是归根结底还是servlet技术。Ajax,一般也是通过js向servlet提交,当然也可以访问其他服务器资源,不过其他服务器资源就不能算java后台了吧……而webservice应该是属于后台交互了。Java框架是摆脱不了servlet的,这是J2EE的心脏。
㈩ Java web相关的几个问题,求解题,不要太啰嗦也不要太简洁,考试卷上能高分是重点,
答案:
1.可能发生空指针异常。因为从session中取出key为“username”可能是null.如果s是null那么s.lenght();会爆空指针异常。
2.(1)加载JDBC驱动程序,通过java.lang.Class类的静态方法forName(String className)实现。
(2)提供JDBC连接的URL,一般可以从驱动包中找到。
(3)创建数据库的连接,需要向java.sql.DriverManager请求并获得Connection对象。使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 密码来获得。
(4)创建一个Statement,要执行SQL语句,必须获得java.sql.Statement实例。A.执行静态SQL语句。B.通常通过Statement实例实现。执行动态SQL语句。通常通过PreparedStatement实例实现。C.执行数据库存储过程。通常通过CallableStatement实例实现。
(5)执行SQL语句Statement接口提供了三种执行SQL语句的方法:executeQuery executeUpdate
和execute
(6)处理结果:执行更新返回的是本次操作影响到的记录数。执行查询返回的结果是一个ResultSet对象。
(7)关闭JDBC对象
3.初始化阶段 调用init()方法
响应客户请求阶段调用service()方法
终止阶段调用destroy()方法
4.MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作
5.sendRedirect()是跳转。
forward()是转发。
不同点:(1)sendRedirect(“目的地”) 是response 对象的方法,forward(request,response)是request.getRequestDispatcher("目的地") 方法 返回的对象 requestDispatcher 的方法;
(2)sendRedirect() 在客户端运行,会产生新的请求,地址栏显示新地址,forward()在服务端运行,地址栏的地址不变;
(3)sendRedirect() 跳转之后,不能获取request中的对象,而forward()可以获取;
(4)forward()速度更快。
相同点:都能实现页面跳转或者是服务器资源的跳转;
6.错误。有不是成对出现的比如:<img src="" />
7.JSP注释
<%--*****--%> 是不输出到客户端的注释符。
<%!--*****--%> 是输出到客户端的注释符。
指令元素
<%@ page contentType=”text/html” %> 设置指定页面内容类型
<%@ include ...%> 在翻译阶段引入一个文件
<%@ taglib ... %> 声明一个页面使用的,包含自定义行为的标记库。
行为元素
<jsp:useBean> 使一个JavaBeans组件在该页中可用
<jsp:setProperty> 设置JavaBeans的属性值
<jsp:forward> 将对请求的处理转交给一个servlet或JSP页面
脚本元素
<%this is a scriptlet%> 嵌入脚本代码
表达式元素
<%= this is an expression%> 嵌入java表达式
方法声明
<%! this is a declaration%> 用于在JSP页面的实现类中声明变量和方法