标签‘java’

jsp框架之Struts1.x学习简单总结

Struts是基于Model 2之上的,而Model 2是经典的MVC(模型-视图-控制器)模型的Web应用变体,这个改变主要是由于网络应用的特性--HTTP协议的无状态性引起的。Model 2的目的和MVC一样,也是利用控制器来分离模型和视图,达到一种层间松散耦合的效果,提高系统灵活性、复用性和可维护性。在多数情况下,你可以将Model 2与MVC等同起来。 在利用Model 2之前,我们是把所有的表示逻辑和业务逻辑都集中在一起(比如大杂烩似的JSP),有时也称这种应用模式为Model 1,Model 1的主要缺点就是紧耦合,复用性差以及维护成本高。

Struts 1.1 和Model 2

既然Struts 1.1是基于Model 2之上,那它的底层机制也就是MVC 首先,控制器(ActionServlet)进行初始化工作,读取配置文件(struts-config.xml),为不同的Struts模块初始化相应的ModuleConfig对象。比如配置文件中的Action映射定义都保存在ActionConfig集合中。相应地有ControlConfig集合、FormBeanConfig集合、ForwardConfig集合和MessageResourcesConfig集合等。 查看更多...

JSP中标准标签库JSTL的使用总结

JSP标准模板库(JSTL)是SUN公司发布的一个针对JSP开发的新组件。JSTL允许你使用标签(tags)来进行JSP页面开发,而不是使用多数JSP程序员已经习惯了的scriptlet代码方式开发。JSTL几乎能够做到传统JSP scriptlet代码能做的任何事情。你可能会疑惑,为什么我们需要另一种这样的HTML生成语言呢?

STL允许JSP程序员使用tags而不是JAVA代码来编程。为了展示为什么这个是更优越的,下面将给出示例。我们会检查一个非常简单的从1数到10的JSP页面。我们将通过两种方法来检查,一种是基于JSP的scriptlet,一种是JSTL。当这个计数器页面的例子是用JSP scriptlet来编写时,JSP页面如下所示:

<html>
<head>
<title>Count to 10 in JSP scriptlet</title>
</head>
<body>
<%
for(int i=1;i<=10;i++) 查看更多...

收集一些常见的JavaWeb(J2EE)面试题(不断更新)

1、JSP页面是如何被执行的?JSP执行效率比Servlet低吗?
当客户端向一个JSP页面发出请求时,Web Container将JSP转化成Servlet的源代码(只在第一次请求时),然后编译转化后的Servlet并加载到内存中执行,执行的结果Response到客户端。
JSP只在第一次执行的时候会转化为Servlet,以后每次执行Web容器都是直接执行编译后的Servlet,所以JSP和Servlet只是在第一次执行的时候不一样,JSP慢一点,以后的执行都是相同的。

2、JSP如何处理运行时异常(run-time)exceptions?

可以使用页面的errorPage属性捕获没有处理的运行时异常,然后自动转向到一个错误处理页面,代码如下:
<%@ page errorPage=”error.jsp” %>
如果在页面请求时出现运行时异常是,以上代码会把页面转向到JSP页面error.jsp,在error.jsp里面,可以通过以下代码定义这个页面是错误处理页:
查看更多...

JavaWeb入门,servlet的常见错误汇总

最常见的路径错误,只要你深刻理解了下面的要点,你就能够顺利解决。

在访问时,url地址是: http://localhost:port/项目名称/web.xml中配置的里的内容
后面不用再加servlet的名字了 ,因为url-pattern里的就是访问servlet的相对路径,只要访问url中的和 配置文件中的 保持一致就行了...
另外,中的类名,如果该类是在一个包里的话,则应为:包名.类名。

常见错误:
500 是Server Error
400 是Clinet Error
300 Route change
200 OK

应答代码,虽然是SIP的但同样适用于HTTP,只是加了一些东西
查看更多...

云时代免费JavaWeb开发环境注册及使用

自从开始学习javaWeb开发,就一直找稳定的开发运行、测试主机,之前朋友也曾提过,但很多支持java的主机确实贵的要命,我说还不如买台便宜的vps跑java吧,他说对linux不大懂,还是虚拟主机方便些,后来也曾收集了各种资料,包括gae大家的什么之类,但都不理想。废话到此,下面说说今天要推荐的Jelastic,可能很多朋友都在用了,那么看到这里你可以绕道了。

官网打出的标语是Jelastic Java Host Rock-solid Java in the Cloud,Auto-scales. Easy to deploy. Runs ANY Java app.最后还有一条Sign Up for Free!,可以看出,网站是类似于sf一样提供开发者空间的,稳定性暂时不晓得,是今天在hostloc上找vps的时候网友推荐的,最主要是免费,虽然有计价系统,但都是$0,这样至少目前还可以说是免费了。

注册,很简单,通用规则,使用gmail好一点,选择服务器所在地,有北美和欧洲两个选项,这里我选北美的,个人认为北美的会快些,hostloc上有用过的朋友也说是北美欧洲的有兴趣的朋友可以试试,如图。

查看更多...

JavaScript常用方法属性总结

1.form.elements[]属性

功能: 得到表单所有控件元素的列表
例子:将表单中的文本域中的文字设置为空

var Form=window.document.forms[0]; //得到window窗体的第一个表单对象
for(var i=0; i<from .elements.length;i++){
if(Form.elements[i].type =="text"){
Form.elements[i].value="";
}
}

2.getElementById方法

功能:使用getElementById方法根据id得到窗体中所有控件的对象。
文档对象模型(DOM)如下:

查看更多...

Dom4j解析xml常用api总结

一:构建dom4j树(表示为Document 元素)
常用方法:
方式一:直接创建所有元素:dom4j为我们准备了工具类DocumentHelper ,该类的所有的方法都是静态方法,用来创建xml文档的各个组成部分。

1.1.1创建Document 和Element对象:
Document doc=DocumentHelper.createDocument();
Element eltRoot=DocumentHelper.createElement(“student”);
doc.setEltRootElement(eltRoot);

1.1.2或者先准备好根元素,使用有参数的构造方法创建Document对象。 查看更多...

java程序dom解析xml经典入门级文档

用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器。
JAXP接口包含了三个包:
(1)org.w3c.dom W3C推荐的用于XML标准规划文档对象模型的接口。
(2)org.xml.sax  用于对XML进行语法分析的事件驱动的XML简单API(SAX)。
(3)javax.xml.parsers解析器工厂工具,程序员获得并配置特殊的特殊语法分析器。
DOM编程不要其它的依赖包,因为JDK里自带的JDK里含有的上面提到的org.w3c.dom、org.xml.sax 和javax.xml.parsers包就可以满意条件了。

我们现在来看看DOM是如何解析XML的吧!同样的,我将从一个简单的不能再简单的例子来说明DOM是如何解析XML文档的,先让我们看看XML是什么内容吧: 查看更多...

简单三步,学会Java Socket多线程编程

第一步 充分理解Socket

1.什么是socket

所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

以J2SDK-1.6为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。

重要的Socket API: 查看更多...

Java编程精要,多线程实战体会

在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持。本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观。读完本文以后,用户应该能够编写简单的多线程程序。

为什么会排队等待?

下面的这个简单的 Java 程序完成四项不相关的任务。这样的程序有单个控制线程,控制在这四个任务之间线性地移动。此外,因为所需的资源 ? 打印机、磁盘、数据库和显示屏 -- 由于硬件和软件的限制都有内在的潜伏时间,所以每项任务都包含明显的等待时间。因此,程序在访问数据库之前必须等待打印机完成打印文件的任务,等等。如果您正在等待程序的完成,则这是对计算资源和您的时间的一种拙劣使用。改进此程序的一种方法是使它成为多线程的。

四项不相关的任务 查看更多...