mvc:模型-视图-控制器结构,这种构架在vc中我们可以体会得更深一些。在java中实现这种构架的目的是实现网页制作人员和开发人员的分工。然而这一知识点并不容易掌握,所需要读者了解的知识点尤其是对servlet的理解一定要深刻,所以这里我采用渐行渐进的步骤,从点到面逐步引导大家掌握这一技术。
首先,大家要看懂以下几个类的作用。每个类都有相应的说明,和导读内容。[b:ec7138a775]
action接口[/b:ec7138a775]
示例:/web-inf/classes/actions/action.java
package actions;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
public interface action
{
public actionrouter perform(httpservlet servlet,
httpservletrequest req,httpservletresponse res)
throws java.io.ioexception,javax.servlet.servletexception;
}
action接口定义了一个perform的方法,它向操作servlet、http请求响应传递引用。
actionfactory类
示例:/web-inf/classes/actions/actionfactory.java
package actions;
import java.util.hashtable;
public class actionfactory
{
private hashtable action_s=new hashtable();
public action getaction(string classname,classloader loader)
throws classnotfoundexception,illegalaccessexception,instantiationexception
{
action action=(action)actions.get(classname);
if (action==null) //如果该操作未存储在哈希表中,操作库将首先创建它
{
class klass=loader.loadclass(classname);//获取对象类型
action=(action)klass.newinstance();//对象初始化
actions.put(classname,action);//存储到哈希表中
}
return action;
}
}
在操作库中保持操作的哈希表,该库的getaction方法由操作的servlet调用,并返回对应于类名的操作。如果该操作未存储在哈希表中,操作库将首先创建它,然后再存储到哈希表中。以后遇到相同的操作请求,操作库将仅仅从哈希表中返回一个引用。
导读:getclass():方法返回为一个class类型的对象。例:
…
private logindb logindb;
class pt=logindb.getclass();
system.out.println(“the beans name is:”+pt.getname());
…
输出内容:the beans name is: bean.logindb
大多数情况下定义一个class的对象的目的是要引用getclass方法。
newinstance():这个方法将调用类的默认的构造器,由当前的class对象表示,并把生成的对象作为object类型返回。如果你想把该类型保存在某一类型的变量里,则需要将它转换
为相应的类型,否则将直接把结果存储在一个object类型的变量里。这个方法会抛出两个异常:illegalaccessexception,instantiationexception
闽公网安备 35060202000074号