1 安装JDK,安装完成后,在cmd中执行java -version能看见JDK信息,只能说明JDK安装成功了,在JDK安装过程中还安装了public jre,Eclipse可以根据这个公共jre智能识别,实际上是C:\Windows\System32\java.exe这个程序的作用,JDK目录中的编译和运行工具等还不能使用,所以要进行环境变量配置
2 配置环境变量:计算机-->属性-->高级系统设置-->环境变量-->新建用户变量JAVA_HOME,值是C:\Program Files\Java\jdk1.8.0_20(要指定到JDK目录)-->新建系统变量CLASSPATH,值是.;C:\Program Files\Java\jdk1.8.0_20\lib\dt.jar;C:\Program Files\Java\jdk1.8.0_20\lib\tools.jar-->编辑系统变量path,最后面添加值;C:\Program Files\Java\jdk1.8.0_20\bin-->确定
3 使用cmd命令转到java文件所在目录,执行javac Test.java就会在当前目录下生成Test.class文件。之后我们运行java Test即可运行程序。当然也可以人为指定class文件的生成位置,利用-d选项。比如 javac -d D:\ Test.java,那么就可以在D:\目录下看到Test.class了。Test.java类名要与文件名一致,否则编译会出错;并且记事本开发不能保存UTF-8格式,会加上BOM头,无法编译成功,要保存成ANSI格式
代码public class Test {
public static void main(String[] args) {
System.out.println("牛牛");
}
}
window--preferences,输入content assist(汉化后输入内容辅助) 在java中将200ms修改成0,并将.abcdefghijklmnopqrstuvwxyz输入提示触发框内。
request.setCharacterEncoding("gb2312");此句话的form必须是method=post才会有效果,否则中文还是乱码,解决办法:Get方式则采用new String(request.getParameters("name1").getBetys("ISO-8859-1"),"utf-8");
修改Tomcat安装目录中的config文件夹中的server.xml文件的方法(MyEclipse集成的tomcat路径为D:\工作空间\.metadata\.me_tcat\conf\server.xml)。 打开config/server.xml文件,添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让 Tomcat不再以ISO-8859-1的编码处理get请求。绿色部分为新添加的代码:
代码<Connector port="8080" URIEncoding="utf-8"
protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
这样修改后重启Tomcat,测试成功。
用记事本打开项目文件夹中的.project文件,找到下面部分删除即可
代码<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
原因: 配置虚拟目录引起,如下配置: tomcat的server.xml
代码<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="d:\myapp"/>
</Host>
我们在Host标签里配置了appBase="webapps",tomcat会去加载一次应用。 在<Context>里配置了一次docBase,tomcat会又去加载一次引用。 导致项目会加载二次。 解决:
代码<Host name="localhost" debug="0"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="webapps/xw"/>
</Host>
将appBase=""设置成空,不能删掉该属性,说明:如果你的项目中的链接或者图片写的都是绝对路径的话,那么带有项目名称的绝对路径是不可以使用的
将解压版tomcat解压到相应的路径下D:\tomcat7,修改bin/service.bat文件,在最头上加入
bashSET JAVA_HOME=C:\java\jdk1.x.x
SET CATALINA_HOME=D:\tomcat7
SET PR_DISPLAYNAME=tomcat7
修改bin/startup.bat和shutdown.bat文件,在头上加入
bashSET JAVA_HOME=C:\java\jdk1.x.x
SET CATALINA_HOME=D:\tomcat7
运行Win+R打开运行对话框,输入cmd命令打开控制台执行命令:
bash# service.bat install tomcat7
显示安装成功信息,用services.msc查看服务列表里会有一个Apache Tomcat tomcat7服务,把服务改成自动,以后则不用每次都有一个黑窗口显示了
安装ADT-23.0.6.zip到eclipse中。解压android-sdk_r23.0.2-windows.zip到eclipse根目录并重命名android-sdk,设置adt选项中的sdk路径指。向android-sdk,在解压android-19_r03.zip将里面的文件夹名称由android-4.4.2修改成android-19放到android-sdk的platforms文件夹里面。解压编译工具build-tools-20.zip和平台工具包platform-tools_r22-windows.zip覆盖android-sdk的build-tools和platform-tools,没有则直接粘贴。解压Google APIs_19.zip到android-sdk的add-ons文件夹里面(没有则新建一个)。
hibernate-tools创建配置文件时候,default_schema:要填写架构名,即登录用户的大写,hibernate-tools创建的hibernate.cfg.xml在不联网状态下,要将dtd文件指定到本地磁盘路径 Struts中default-action-ref只能简单跳转页面不能在执行的method中对数据库进行操作,struts中使用session,tomcat服务重启,session还在解决办法:找到tomcat的server.xml,取消下面的注释或关闭浏览器再打开<!-- Uncomment this to disable session persistence across Tomcat restarts --><!-- <Manager pathname="" /> --> Struts2 OSIV模式下的异常处理及事务回滚解决方案,Struts2与hibernate整合,有时会使用OpenSessionInView模式控制会话及事务,那么这时Filter的设计通常如下:
代码try {
打开会话; 获取事务; chain.doFilter(); 事务提交;
} catch (Exception e) {
事务回滚;
}
看似很合理,但是catch里面的语句块无法到达,即使过程中出现异常,也无法到达,原因就是事务被Struts2的拦截器捕获了,没有继续向上抛,所以这时,想Filter控制事务回滚,看似不太可能了。没关系,我们换个思路,我们可以通过interceptor来实现这个功能,即自定义一个interceptor,代码如下:
代码try {
invacation.invoke();
} catch (Exception e) {
Session session = 通过ThreadLocal获得Session;
Transaction tx = session.getTransaction();
tx.rollback();
}
之后在struts.xml中配置intercepter-stack,这里需要注意这个interceptor必须放在default-stack的下面,即interceptor-stack的最下面:
代码<interceptor-stack>
<interceptor-ref name="default-stack"/>
<interceptor-ref name="rollback"/>
</interceptor-stack>
然后将默认的interceptor-stack声明成这个,那么相应的Filter里面就需要改成如下:
代码doFilter() {
获取会话; 获取事务; chain.doFilter();
if(事务没回滚) {
提交事务;
}
}
这样便可以在发现异常的时候,让事务回滚了,前提,这里的Session是利用ThreadLocal做好的线程范围的Session,这样获取Session的时候才可以保证获得的是同一个Session,但是好像现在的最新版本Hibernate已经内置了ThreadLoad的处理了,不需要我们自己来写了。 Struts实现域名入口地址不跳转action办法,在web.xml中覆盖struts的过滤器映射
代码<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
在网站的welcome-file-list中指定的页面中body中加入
代码<%request.getRequestDispatcher("a/login.action").forward(request, response);%>