「java框架达人」框架 java

博主:adminadmin 2023-03-19 00:45:06 274

本篇文章给大家谈谈java框架达人,以及框架 java对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

寻找JAVA达人,设置环境变量

安装完JDK之后,需要配置三个环境变量,分别为:

JAVA_HOME

Path

Classpath

在“系统属性”的“高级”选项卡中,找到“环境变量”。

在“系统变量”中新建系统变量“JAVA_HOME”,其变量值为“C:\Program Files\Java\jdk1.6.0_03\”。

JAVA_HOME本身只是一个变量名,%JAVA_HOME%表示对其值的引用。完全可以用其他的名称代替。之所以存在这个变量,是为了引用地址时更方便些。而且这个名字也是比较贴切的。对吧

JAVAHOME就是安装目录,用在 PATH,CLASSPATH的设置中免去了你再写一长串的路径,用JAVAHOME就代替安装目录。

举例:

需要设定一个值为:“C:\Program Files\Java\jdk1.6.0_03\bin”。

可以简写为:“%JAVA_HOME%\bin”。

因为JAVA_HOME已经代表了前面繁琐的“C:\Program Files\Java\jdk1.6.0_03”。

据说,在eclipse和tomcat中有些相关配置名也使用的JAVA_HOME。为了避免不必要的麻烦,所以统一使用JAVA_HOME命名规则。

第二、Path变量是本身就存在的(首字母大写,据说无大小写区别)。添加“%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin ”。

Path 使得系统可以在任何路径下识别java命令。在设置之前,在cmd命令行下敲入javac,系统是无法识别的。因为javac命令的本质是javac.exe应用程序,其物理位置放在“C:\Program Files\Java\jdk1.6.0_03\bin”。Path设置好之后,系统就知道到这个地方来找。

PATH列出了可执行文件的搜索路径。因为通常要通过命令行的命令启动JAVA,JAVAC等编译工具和解释工具,系统必须要知道他们所在的位置,PATH就是用来指明他们的位置的。

关于Path的理解可以参考在命令行模式运行notepad.exe。

如果把notepad.exe文件从system32目录中移出,同样在cmd命令行下就无法运行我最喜欢的notepad了。

第三、Classpath设置的是JAVA程序编译和运行时的类文件搜索路径。

用法:javac 选项 源文件

其中,可能的选项包括:

-classpath 路径 指定查找用户类文件和注释处理程序的位置

两个方面来理解classpath:

第一、可以理解为*.class等源文件所保存的位置。首先明确javac.exe程序是放在在bin目录下的。用户运行指令:javac HelloWorld.java的过程,实际上是编译器首先在当前目录(bin目录)查找该HelloWorld.java文件,有则运行成功,无则跳转至classpath所设定的目录去找。

第二、CLASSPATH变量指的是JAVA加载类(class or lib)的路径。只有在classpath设置的路径中的类才能被加载。

设置方式为:

必须指定\tools.jar。这个\tools.jar不是目录,是一个包。必须指定这个包才行。

C:\Program Files\Java\jdk1.6.0_03\lib\dt.jar;

C:\Program Files\Java\jdk1.6.0_03\lib\tools.jar;

即:“%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”。

我的QQ5857471

上面是我复制的一个,可以用。

JAVA的三大框架是什么?如何进行学习的呢?

三大框架:Struts+Hibernate+Spring。Java三大框架主要用来做WEN应用。

Struts主要负责表示层的显示。

Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作)。

Hibernate主要是数据持久化到数据库。

再用jsp的servlet做网页开发的时候有个web.xml的映射文件,里面有一个mapping的标签就是用来做文件映射的。当在浏览器上输入URL得知的时候,文件就会根据写的名称对应到一个JAVA文件,根据java文件里编写的内容显示在浏览器上,就是一个网页。

扩展资料:

Java框架益处:

减少设计辛劳:

集合框架通过提供有用的数据结构和算法使你能集中注意力于你的程序的重要部分上,而不是为了让程序能正常运转而将注意力于低层设计上。通过这些在无关API之间的简易的互用性,使你免除了为改编对象或转换代码以便联合这些API而去写大量的代码。

提高速度质量:

集合框架通过提供对有用的数据结构和算法的高性能和高质量的实现使你的程序速度和质量得到提高。因为每个接口的实现是可互换的,所以的程序可以很容易的通过改变一个实现而进行调整。

另外,可以从写自己的数据结构的苦差事中解脱出来,从而有更多时间关注于程序其它部分的质量和性能。

API缺点:

许多API天生的有对集合的存储和获取。在过去,这样的API都有一些子API帮助操纵它的集合内容,因此在那些特殊的子API之间就会缺乏一致性,也不得不从零开始学习,并且在使用时也很容易犯错。而标准集合框架接口的出现使这个问题迎刃而解。

参考资料来源:百度百科-Java框架

java的框架struts2的Action如何接收超链接的参数

1. ActionContext

在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们需要在Action中取得request请求参数"username"的值:

ActionContext context = ActionContext.getContext();

Map params = context.getParameters();

String username = (String) params.get("username");

on执行时的上下文,上下文可以看作是一个容器(其实我们这里的容器就是一个Map而已),它存放的是Action在执行时需要用到的对象. 一般情况, 我们的ActionContext都是通过: ActionContext context = (ActionContext) actionContext.get();来获取的.我们再来看看这里的actionContext对象的创建:

static ThreadLocal actionContext = new ActionContextThreadLocal();

ActionContextThreadLocal是实现ThreadLocal的一个内部类.ThreadLocal可以命名为"线程局部变量",它为每一个使用该变量的线程都提供一个变量值的副本,使每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突.这样,我们ActionContext里的属性只会在对应的当前请求线程中可见,从而保证它是线程安全的.

通过ActionContext取得HttpSession: Map session = ActionContext.getContext().getSession();

2. ServletActionContext

ServletActionContext(com.opensymphony.webwork. ServletActionContext),这个类直接继承了我们上面介绍的ActionContext,它提供了直接与Servlet相关对象访问的功能,它可以取得的对象有:

(1)javax.servlet.http.HttpServletRequest : HTTPservlet请求对象

(2)javax.servlet.http.HttpServletResponse : HTTPservlet相应对象

(3)javax.servlet.ServletContext : Servlet上下文信息

(4)javax.servlet.ServletConfig : Servlet配置对象

(5)javax.servlet.jsp.PageContext : Http页面上下文

如何从ServletActionContext里取得Servlet的相关对象:

1取得HttpServletRequest对象: HttpServletRequest request = ServletActionContext. getRequest();

2取得HttpSession对象: HttpSession session = ServletActionContext. getRequest().getSession();

3. ServletActionContext和ActionContext联系

ServletActionContext和ActionContext有着一些重复的功能,在我们的Action中,该如何去抉择呢?我们遵循的原则是:如果ActionContext能够实现我们的功能,那最好就不要使用ServletActionContext,让我们的Action尽量不要直接去访问Servlet的相关对象.

注意:在使用ActionContext时有一点要注意: 不要在Action的构造函数里使用ActionContext.getContext(),因为这个时候ActionContext里的一些值也许没有设置,这时通过ActionContext取得的值也许是null;同样,HttpServletRequest req = ServletActionContext.getRequest()也不要放在构造函数中,也不要直接将req作为类变量给其赋值。至于原因,我想是因为前面讲到的static ThreadLocal actionContext = new ActionContextThreadLocal(),从这里我们可以看出ActionContext是线程安全的,而ServletActionContext继承自ActionContext,所以ServletActionContext也线程安全,线程安全要求每个线程都独立进行,所以req的创建也要求独立进行,所以ServletActionContext.getRequest()这句话不要放在构造函数中,也不要直接放在类中,而应该放在每个具体的方法体中(eg:login()、queryAll()、insert()等),这样才能保证每次产生对象时独立的建立了一个req。

4. struts2中获得request、response和session

(1)非IoC方式

方法一:使用org.apache.struts2.ActionContext类,通过它的静态方法getContext()获取当前Action的上下文对象。

ActionContext ctx = ActionContext.getContext();

ctx.put("liuwei", "andy"); //request.setAttribute("liuwei", "andy");

Map session = ctx.getSession(); //session

HttpServletRequest request = ctx.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);

HttpServletResponse response = ctx.get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);

细心的朋友可以发现这里的session是个Map对象, 在Struts2中底层的session都被封装成了Map类型. 我们可以直接操作这个Map对象进行对session的写入和读取操作, 而不用去直接操作HttpSession对象.

方法二:使用org.apache.struts2.ServletActionContext类

public class UserAction extends ActionSupport {

//其他代码片段

private HttpServletRequest req;

// private HttpServletRequest req = ServletActionContext.getRequest(); 这条语句放在这个位置是错误的,同样把这条语句放在构造方法中也是错误的。

public String login() {

req = ServletActionContext.getRequest(); //req的获得必须在具体的方法中实现

user = new User();

user.setUid(uid);

user.setPassword(password);

if (userDAO.isLogin(user)) {

req.getSession().setAttribute("user", user);

return SUCCESS;

}

return LOGIN;

}

public String queryAll() {

req = ServletActionContext.getRequest(); //req的获得必须在具体的方法中实现

uList = userDAO.queryAll();

req.getSession().setAttribute("uList", uList);

return SUCCESS;

}

//其他代码片段

}

(2)IoC方式(即使用Struts2 Aware拦截器)

要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。

public class UserAction extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {

private HttpServletRequest request;

private HttpServletResponse response;

public void setServletRequest(HttpServletRequest request) {

this.request = request;

}

public void setServletResponse(HttpServletResponse response) {

this.response = response;

}

public String execute() {

HttpSession session = request.getSession();

return SUCCESS;

}

}

java达人进啊!!

同学我建议你看看《java编程思想》,现在我简要的跟你说说向上转型:比如有一个people基类,里面有一个say方法打印people-say;然后有一个man类继承了people类,有一个woman类继承了people类,然后两个子类都重载了say方法,man类打印man-say,woman类打印woman-say;这时候你创建了一个方法void say(people p){ p.sya();} 如果你传入的参数是people实例,结果就是输出people-say,如果你传入的参数是man类,结果就是输出man-say,如果你传入的参数是woman类,结果就是输出woman-say。这就是向上转型的一个例子,说明的是子类具有基类的所以接口,就是说可以使用基类的地方都可以用子类代替,而且得出子类的正确运行结果;反之就是向下转型,但是向下转型是不安全的,有可能是子类独有基类没有的

2到JAVA题,求助各位达人!!!谢谢!

1.明显D

请参考XPath语法,中文章节参见:

2.明显C

A:数组永远初始化大小,永远不会变

B:删除元素?怎么删除,必须指定名字才行吧,而且还要系统遍历查找删除的。

D.明显能放null

关于java框架达人和框架 java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。