JAVA必备工具maven-3.6.3版的安装配置使用记录、WEB项目开发取请求参数null问题及request常用获取请求参数方法

一、JAVA必备工具maven-3.6.3版的安装配置使用记录

    maven不是什么高档的东东,就是用来管理程序中的依赖关系,比如你的程序需要用一个数据库包,你可以去自己导入,而通过maven可以不用手动去导入,只需要填写一些配置,比如要导入哪个包以及版本要求等,maven就会自动下载下来。其它的语言里也有类似的东西,比如node中的npm,比如php中的composer,maven工程导入jar包只需要在pom.xml配置文件中定义要导入的包名,后台会自动从maven仓库下载,除此之外,使用maven还有一些好处:

  • 使用maven构建的项目不包含jar包文件,从而缩小整个项目的占用空间。
  • 项目一键构建,使用maven可以快速地对项目进行编译、测试、运行、打包、安装
  • maven可在window、linux上使用,且maven遵循规范开发有利于提高大型团队的开发效率,降低维护成本。

1、maven的下载安装

maven的下载地址:Maven – Download Apache Maven 

        推荐下载最新版,我这里在windows下用,下载的是3.6.3的 apache-maven-3.6.3-bin.zip。下载后解压至某个目录下,如:D:\apache-maven-3.6.3。maven安装就和JDK一样(说到这里补一句,maven是需要JDK的),只需此目录添加到新增的maven的环境变量MAVEN_HOME中,再在path环境变量不添加: %MAVEN_HOME%/bin。使用mvn -v 显示版本号来查看是否安装成功。

2、maven的配置

        maven的配置文件:setting.xml,在上面的maven目录 D:\apache-maven-3.6.3 下conf文件夹里。需要进行三项配置。

    #、设置maven下载jar包的本地仓库地址。

        设置maven下载jar包的本地仓库地址之后maven自动下载的包会全部放在这里,这点和php好,php的compose程序需要在每个项目中都下载一遍,而java的maven可以只在一个地方下载存放,所有项目共用。在setting.xml中搜索"localRepository",去掉注释,配置好本地的存放路径,如:

<localRepository>D:\apache-maven-3.6.3\localRepository</localRepository>

    #、设置maven的全局jdk版本,

        设置maven的全局jdk版本,通过jdk关键词,查找配置文件中的下面这个模块,去掉注释。填写好你当前的jdk版本。

<profile>
  <id>jdk-1.8</id>
  <activation>
	<jdk>1.8</jdk>
  </activation>

  <repositories>
	<repository>
	  <id>jdk18</id>
	  <name>Repository for JDK 1.8 builds</name>
	  <url>http://www.myhost.com/maven/jdk18</url>
	  <layout>default</layout>
	  <snapshotPolicy>always</snapshotPolicy>
	</repository>
  </repositories>
</profile>

    #、增加阿里云maven仓库镜像

        加速maven下载,增加阿里云maven仓库镜像,在maven的settings.xml 文件里配置mirrors的子节点,添加阿里云的mirror

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

3,在eclipse IDE中关联已安装好的maven

    在eclipse IDE中需要配置两个地方,一是window–>preference–>maven下需要添加 maven的安装路径,让eclipse能执行maven。二是在当前user setting选项中更改settings.xml的位置,具体如下图:

4、新建maven项目

    上述操作完成之后,在eclipse中新建maven项目:file->new->maven project。刚开始用,可以在界面上可以选择:create a simple project,填写一些内容即完成项目创建。创建好的maven项目目录中就会存在一个pom.xml配置文件,我们所需要的包在这里的<dependencies>下配置即可,保存之后maven就会自动下载配置里的包文件放在上面配置的localRepository中,如下示例:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
	   <groupId>org.springframework</groupId>
	   <artifactId>spring-webmvc</artifactId>
	   <version>5.1.10.RELEASE</version>
	</dependency>
</dependencies>

    需要了解要下载的包,去官网: http://mvnrepository.com/ 搜索查看即要, 就像composer的官网一样。能搜索到各种包并有详细的介绍以及使用文档。复制Maven代码到 pom.xml中即可。阿里云的maven仓库可以使用,不过不能使用页面访问,可访问:https://maven.aliyun.com 了解。

二、java WEB项目开发取请求参数null问题及request常用获取请求参数方法

1. java WEB项目开发取请求参数null问题

        java WEB项目开发取请求参数java.lang.NumberFormatException: null问题及request中常用获取请求参数方法。JAVA中从WEB请求中提取参数使用Servlet里HttpServletRequest类的getParameter方法,如下从URL中提取page参数和uuid参数,示例如下:

int pagenum = Integer.valueOf(request.getParameter("page"));
String uuid = request.getParameter("uuid");

    但在使用的时候发现URL传了参数不写值时服务端接收到的是空字符串不会报错,但URL中如果不带这个参数,就会报错:java.lang.NumberFormatException: null at java.base/java.lang.Integer.parseInt(Integer.java:614) at java.base/java.lang.Integer.valueOf(Integer.java:983)。即URL中不传参的时候提取到的值是null,而这个null传给 Integer.valueOf 或者 Integer.parseInt 方法就会报错。另外在进行Integer.valueOf整数处理的时候,如果传入的数据是字符串,也会报错,都需要进行异常处理。如下:

#参数处理代码,调用help中的数字判断。
int page = 1;
if(request.getParameter("page") != null ){
    if(Help.isNumeric(request.getParameter("page"))) {
        page = Integer.valueOf(request.getParameter("page"));

    }
}

#Help.isNumeric方法代码:
public static boolean isNumeric(String str) {
    Pattern pattern = Pattern.compile("[0-9]*");
    Matcher isNum = pattern.matcher(str);
    if( !isNum.matches() ){
        return false;
    }
    return true;
}

    整个过程要先进行null判断,再判断是否纯数字,然后再进行Integer.valueOf处理。真感觉挺麻烦的,HttpServletRequest类应该提供一个request.getParameterDefault方法,另外在字符串转整型的时候我觉得也不妥当。

2. request常用获取请求参数方法

        HttpServletRequest类方法很多,都是提取URL请求时的各项数据,常用的方法和意义列表如下:

getRequestURL()  //获取URL
getQueryString() //获取参数列表,适用于GET,提取URL中?号后面的内容。
request.getMethod();  //获取请求方式 get和post都可用,
request.getParameter("test");  //获取参数值value  get和post都可用,不适用contentType为multipart/form-data
request.getParameterNames(); //获取所有参数key get和post都可用,注:不适用contentType为multipart/form-data
request.getContentType(); //获取请求类型 get和post都可用,如application/json ,multipart/form-data, application/xml等
request.getParameterMap(); //获取取参数请求集合 get和post都可用,注: 不适用contentType为multipart/form-data
request.getInputStream() //获取文本流,适用于如:application/json,xml,multipart/form-data文本流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林戈的IT生涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值