开发过程中的疑问及解析_常用配置

来源:互联网 发布:选择排序java 编辑:程序博客网 时间:2024/04/20 02:29

前言:针对我在开发过程中的一些疑问进行整理,并对这些疑问进行有针对性的解析。当前正在学习阶段,如果发现有什么错误或疑问请留言,我会尽快的解决。

一、Maven

1.1 Eclipse中显示环境时JDK1.5,但是我安装的是1.8

场景:除了默认JDK变更为1.5,有的时候在项目上进行更新时也会恢复到1.5。

解析:

Maven官方文档有如下描述:

  编译器插件用来编译项目的源文件.从3.0版本开始, 用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6) . 如果你想强制性的让插件使用javac,你必须配置插件选项 forceJavacCompilerUse.
  同时需要注意的是目前source选项和target 选项的默认设置都是1.5, 与运行Maven时的JDK版本无关.如果你想要改变这些默认设置, 可以参考 Setting the -source and -target of the Java Compiler中的描述来设置 source 和target 选项.
总的来说:

  这是Maven已知的一个特性。除非在你的POM文件中显示的指定一个版本,否则会使用编译器默认的source/target版本1.5。主要还是在于Eclipse中Maven的集成方式起到了关键作用, 它会从POM文件中生成项目的.project,.classpath以及.settings, 因此除非POM文件指定了正确的JDK版本, 否则你每次更新项目配置的时候它都会重置到1.5版本。

解决办法:

在pom.xml文件中增加如下配置:

<build>    <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <version>3.1</version>        <configuration>          <source>1.8</source>          <target>1.8</target>        </configuration>      </plugin>    </plugins></build>

官网资料:http://maven.apache.org/plugins/maven-compiler-plugin/index.html

参考资料:

为什么Maven会更改Eclipse JDK设置


二、Eclipse

2.1 Eclipse没有了折叠功能

  在开发过程中无意间,摁了快捷键,使得编辑界面没有折叠功能了,可是我原本是想将所有的代码折叠的。后来尝试了几下,发现是误摁了Ctrl+/(小键盘上)快捷键,在摁一下就回来了。

2.2 Eclipse中encoding没有GBK字符集选项

  再导入代码的时候,会出现乱码,如果更改整体配置则需要换来换去,因此我们可以针对当前项目配置当前的字符集,右键->properties->Text  file encoding->other选择字符集,可是没有GBK怎么办,我们直接清除内容,然后手工添加GBK。

2.3 Eclipse安装支持Hibernate的插件

  插件名称:JBoss-Tools。插件下载并安装教程:在Eclipse里添加插件开发Hibernate

2.4 解决XML文件中的警告提示“No grammar constraints (DTD or XML Schema) referenced in the document.”

解决方法:加上 <!DOCTYPE xml>

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE xml>

2.5  解决“Target runtime Apache Tomcat v6.0 is not defined.”

出现的原因:项目的配置是使用Tomcat 6.0 ,但是eclipse中没有。

解决方法:

在工程目录下的.settings文件夹里,打开org.eclipse.wst.common.project.facet.core.xml文件,将<runtime name="Apache Tomcat v6.0"/>改成你tomcat的版本比如<runtime name="自己需要更改的版本"/>

2.6 解决JSTL使用SQL标签时报错“Missing end tag for "sql:update"”这类错误

出现的原因:在sql:transaction或sql:update标签内使用了HTML标签<!--  -->。

解决方法:使用JSP注释<%--  --%>

2.7 jsp页面使用 jstl,出现 Unknown tag (...)警告

解决办法:<% page %> 中加入 isELIgnored="false"


三、数据库

3.1 java代码中的模糊查询字符串的拼写

  针对PreparedStatement我们可以在查询的SQL命令中预留空缺,用问号代替,我们再动态地添加,但是针对模糊查询就需要拐点弯了。我们需要在模糊查询的时候,在需要动态添加的地方按照非模糊查询的写法写,再在传入的字符串时用组拼的方式时将%%添入即可。

3.2 HyperSql使用file模式没有实现永久保存

  使用file模式应该可以实现永久保存的特性,但是在测试过程中没有实现。通过搜索资料发现原来是必须关闭数据库才可以保存,就是在URL中添加;shutdown=true但是仍然没有实现永久保存的效果,最后才发现,是有个前提的,那就是必须所有连接都关闭(conn.close())后才可以。在测试过程中发现我们如果利用代码执行shutdown命令,即使有conn没有断开,也会永久保存的。

  还有一种配置方式,说是可以实现,无需断开连接,当对数据进行修改后,就会被持久化得方法。就是使用;hsqldb.write_delay=false,我查看了API,确实是这么回事,但是测试效果不理想,今后有待理解。

参考资料:HSQLDB(HyperSQL DataBase)在文件模式(File Mode)下数据的持久化


四、java语言

4.1 检测字符串是否相等

  如果检测两个字符串的内容是否相等,我们可以使用equals方法进行检测,切忌不要使用==来比较这两个字符串的内容是否相同。原因是:==只是比较这两个字符是否都放在同一个地方,也就是比较的是存放的地址是否相同。

  然而如果字符串是空的(NULL)那么使用equals会抛出空指针异常,需要切记。

  如果是要比较连个字符串是否相等,最好的写法是if(null!=Str&&Str_temp.equals(Str)),这样可以避免空指针异常,同时也可以检查字符串的内容是否相等。需要注意的是,我们应当先写null!=Str来判断检测的字符串不是null。

4.2 空串与null串

  空串“”是长度为0的字符串。可以调用以下代码检查一个字符串是否为空:if(0==Str.length())或者if(str.equals(""))

  null串表示目前没有任何队形与该变量关联。

4.3 Java中的属性和字段

  Java中的属性和字段的区别:Java中的属性,通常可以理解为get和set方法。而字段,通常叫做“类成员”。这两个概念是完全不同的。
属性只局限于类中方法的声明,并不与类中其他成员相关。例如:

void setA(String s){}String getA(){}
  当一个类中拥有这样一对方法时,我们可以说,这个类中拥有一个可读写的a属性(注意是小写a)。如果去掉了set的方法,则是可读属性,反之亦然。
类成员(字段),通常是在类中定义的类成员变量,例如:
public class A{private String s = "123";}
  我们可以说A类中有一个成员变量叫做s。

五、Java EE

5.1 web.xml配置中的url-pattern的'/'和'/*'的区别

  '/'表示该项目的所有请求路径;'/*'表示只能有一级子路径,它匹配'/a.jsp'但是不匹配'/jsp/a.jsp'。

5.2 解决Invalid location of tag (form)警告

原因:把<form></form>写到<table></table>里面
解决方法就是反过来就可以了。

5.3 EL表达式与SpELl表达式的区别

  首先说明一下JSTL:标准标签库 JSTL 的全名为 Java Server Pages Standard Tag Library。它是由 JCP( Java CommnunityProcess)所指定的标准规范,它主要是给 Java Web 开发者提供了一个标准的通用标签库。通过 JSTL,可以部分地取代传统 JSP 程序中嵌入 Java 代码的做法,可以使得 JSP 页面程序的风格趋于统一,并且容易维护。
  起初 EL 表达式只是为了方便存取数据所定义的一种语言。它只能使用在 JSTL 标签中,而不能在JSP 页面中运用。一直到了 JSP2.0 版本发布后, EL 才被正式纳入为 JSP 标准规范之一。这时,它才可以直接在 JSP 页面程序中使用,只要安装的 Web 服务器能够支持 Servlet2.4/JSP2.0。
  Spring表达式语言(简称为SpEL)是一种JSP2的EL功能类似的表达式语言,他可以在运行时查询和操作对象图。与JSP2的EL相比,SpEl功能更加强大,他甚至支持方法调用和基本字符串模板函数。SpEL可以独立于Spring容器使用——只是当成简单的表达式语言来使用;也可以在Annotation或XML配置中使用SpEL,这样可以充分利用SpEL简化Spring的Bean配置。
通过上面的介绍我总结如下:
  • EL表达式可以在JSP中使用,EL表达式还可以很好在JavaScript中得到使用,因为表达式语言正是借用了访问结构化数据的JavaScript语法。EL 可以很好的和JSTL或者自定义标签结合使用,因为EL 创建的初衷就是在 JSTL 中使用。
  • SpEL可以在Java代码中直接使用,也可以在Spring的XML配置文件中使用,从而简化Spring的Bean配置。

六、常用

6.1 启动Spring的web.xml配置

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>

6.2 启动Struts2的web.xml配置&拦截所有请求

<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>

6.2 导入JSTL 1.2

pom配置:
<dependency>    <groupId>org.apache.taglibs</groupId>    <artifactId>taglibs-standard-spec</artifactId>    <version>1.2.5</version>  </dependency>  <dependency>    <groupId>org.apache.taglibs</groupId>    <artifactId>taglibs-standard-impl</artifactId>    <version>1.2.5</version>  </dependency>  
在使用JSTL的页面添加如下tag即可:
CORE LIBRARY    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  XML LIBRARY    <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>  FMT LIBRARY     <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>  SQL LIBRARY    <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>  FUNCTIONS LIBRARY    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>  

6.3 使用URL Rewrite

导入POM依赖:
<dependency>      <groupId>org.tuckey</groupId>      <artifactId>urlrewritefilter</artifactId>      <version>4.0.3</version>  </dependency> 
在web.xml文件中配置启用URL Rewrite Filter:
<filter>      <filter-name>UrlRewriteFilter</filter-name>      <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  </filter>  <filter-mapping>      <filter-name>UrlRewriteFilter</filter-name>      <url-pattern>/*</url-pattern>      <dispatcher>REQUEST</dispatcher>      <dispatcher>FORWARD</dispatcher>  </filter-mapping>  
注意:需要在所有的servlet mappings的上面。
在应用的WEB-INF路径下增加urlrewrite.xml文件,该文件定义了伪静态映射规则,这份伪静态规则是基于正则表达式。
详见:http://blog.csdn.net/fanxiaobin577328725/article/details/60882714#t22

6.3 Maven项目更改默认的JRE环境

<build><plugins><plugin><!-- 因为Maven所有核心构建都是该groupId,所以省略掉时,Maven会自动找寻该groupId下的该组件.换句话说该groupId可以省略掉不写 --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.8</source><target>1.8</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin></plugins></build>

&#8195&#8195
最后修改时间:2017年4月11日10:09:34

********************************************************************************结束语********************************************************************************************
  我在写这篇博客的时候也是一名初学者,有任何疑问或问题请留言,或发邮件也可以,邮箱为:fanxiaobin.fxb@qq.com,我会尽早的进行更正及更改。
在我写过的博客中有两篇博客是对资源的整理,可能对大家都有帮助,大家有兴趣的话可以看看!!
下载资料整理——目录:http://blog.csdn.net/fanxiaobin577328725/article/details/51894331
  这篇博客里面是我关于我见到的感觉不错的好资源的整理,里面包含了书籍及源代码以及个人搜索的一些资源,如果有兴趣的可以看看,我会一直对其进行更新和添加。
优秀的文章&优秀的学习网站之收集手册:http://blog.csdn.net/fanxiaobin577328725/article/details/52753638
  这篇博客里面是我对于我读过的,并且感觉有意义的文章的收集整理,纯粹的个人爱好,大家感觉有兴趣的可以阅读一下,我也会时常的对其进行更新。
********************************************************************************感谢********************************************************************************************

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 跑步机的声音大怎么办 科二一直考不过怎么办 考科目三太紧张怎么办 科目三太紧张了怎么办 跑步慢怎么办怎样跑快 铣床铣得不直怎么办 考试的时候检测仪响怎么办 吸入腐蚀性气体导致嗓子疼怎么办 孕妇已做c13检查怎么办 静电除尘器绝缘子箱温度低怎么办 高中三角函数计算总算不对怎么办 江苏高考物理考d怎么办 高二化学学不好怎么办 中考最后一次月考下滑怎么办 物联网卡网速慢怎么办 机械表长时间不带不走了怎么办 高中档案有涂改痕迹怎么办 大学平时成绩为0怎么办 电大英语考试成绩取消了怎么办 网贷评分不足要怎么办 学业水平广东1c怎么办 绣花机速度太慢怎么办 娃脖子有点烂了怎么办 7月省内流量套餐怎么办 qq手游授权失败怎么办 钉钉不够6人创建怎么办 钉钉 不够6个人怎么办 plsql删错了表怎么办 吊兰长出来的茎怎么办 防水台鞋跟太高怎么办 证件照头部比例过大怎么办 特岗照片传错了怎么办 打印报名表照片不显示怎么办 刚买的床有味道怎么办 雨刷器角度太小怎么办 四个月宝宝闹觉怎么办 怀孕六个月睡不好觉怎么办? 婴儿睡不好觉总是吵闹怎么办 婴儿鼻塞睡不好觉怎么办 玩英雄联盟鼠标变亮白怎么办 练芭蕾脚受伤了怎么办