华为云 Maven 仓库地址:https://mirrors.huaweicloud.com/,点击立即使用。
分类存档: Java
Maven安装与配置
一、需要准备的东西
1. JDK
2. Eclipse
3. Maven程序包
二、下载与安装
1. 前往https://maven.apache.org/download.cgi下载最新版的Maven程序:
2. 将文件解压到D:\Program Files\Apache\maven目录下:
3. 新建环境变量,赋值D:\Program Files\Apache\maven\bin
4. 至此,maven已经完成了安装,我们可以通过DOS命令检查一下我们是否安装成功:
mvn -v
三、配置Maven本地仓库
1. 在D:\Program Files\Apache\目录下新建maven-repository文件夹,该目录用作maven的本地库。
2. 打开D:\Program Files\Apache\maven\conf\settings.xml文件,查找下面这行代码:
<localRepository>/path/to/local/repo</localRepository>
localRepository节点默认是被注释掉的,需要把它移到注释之外,然后将localRepository节点的值改为我们在3.1中创建的目录D:\Program Files\Apache\maven-repository。
3. localRepository节点用于配置本地仓库,本地仓库其实起到了一个缓存的作用,它的默认地址是 C:\Users\用户名.m2。
当我们从maven中获取jar包的时候,maven首先会在本地仓库中查找,如果本地仓库有则返回;如果没有则从远程仓库中获取包,并在本地库中保存。
此外,我们在maven项目中运行mvn install,项目将会自动打包并安装到本地仓库中。
4. 运行一下DOS命令
mvn help:system
如果前面的配置成功,那么D:\Program Files\Apache\maven-repository会出现一些文件。
四、配置Eclipse的Maven环境
1. Eclipse Oxygen,打开Window->Preferences->Maven->Installations,右侧点击Add:
2. 设置maven的安装目录,然后Finish
3. 选中刚刚添加的maven,并Apply
4. 打开Window->Preferences->Maven->User Settings,配置如下并Apply:
D:\Program Files\Apache\maven\conf\settings.xml
至此,Maven的安装和配置全部结束。
为ubuntu桌面版提供javaEE开发环境
一.安装JDK
# apt-get update
# apt-get install openjdk-8-jdk-headless
安装后检查:
#java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
二.安装Eclipse Java EE IDE
下载地址:
http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/oomph/epp/oxygen/R2/eclipse-inst-linux64.tar.gz
解压后选择安装Java EE IDE
三.为eclipse配置tomcat
tomcat下载地址:
http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.27/bin/apache-tomcat-8.5.27.tar.gz
将解压路径apache-tomcat-8.5.27添加到eclipse>preferences>Server>Runtime Environments中
SpringMVC静态页面例子
下面的例子说明了如何使用 Spring MVC 框架来编写一个简单的基于 web 的应用程序,它可以在 <mvc:resources> 标签的帮助下访问静态页面和动态页面。为了开始使用它,让我们在恰当的位置使用 Eclipse IDE,然后按照下面的步骤使用 Spring 的 Web 框架来开发一个动态的基于表单的 Web 应用程序:
| 步骤 | 描述 |
|---|---|
| 1 | 创建一个名称为 HelloWeb 的动态 Web 项目,并且在已创建的项目的 src文件夹中创建一个包 com.tutorialspoint。 |
| 2 | 将上面提到的 Spring 和其他库拖拽到文件夹 WebContent/WEB-INF/lib中。 |
| 3 | 在 com.tutorialspoint 包下创建一个 Java 类 WebController。 |
| 4 | 在 WebContent/WEB-INF 文件夹下创建 Spring 的配置文件 Web.xml 和 HelloWeb-servlet.xml。 |
| 5 | 在 WebContent/WEB-INF 文件夹下创建名称为 jsp 的子文件夹。在这个子文件夹下创建一个视图文件 index.jsp。 |
| 6 | 在 WebContent/WEB-INF 文件夹下创建名称为 pages 的子文件夹。在这个子文件夹下创建一个静态文件 final.htm |
| 7 | 最后一步是创建所有的源代码和配置文件的内容,并导出该应用程序,正如下面解释的一样。 |
这里是 WebController.java 文件的内容:
package com.tutorialspoint;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class WebController {
@RequestMapping(value = "/index", method = RequestMethod.GET)
public String index() {
return "index";
}
@RequestMapping(value = "/staticPage", method = RequestMethod.GET)
public String redirect() {
return "redirect:/pages/final.htm";
}
}
下面是 Spring Web 配置文件 web.xml 的内容:
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring Page Redirection</display-name> <servlet> <servlet-name>HelloWeb</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWeb</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
下面是另一个 Spring Web 配置文件 HelloWeb-servlet.xml 的内容:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.tutorialspoint" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <mvc:resources mapping="/pages/**" location="/WEB-INF/pages/" /> <mvc:annotation-driven/> </beans>
在这里,<mvc:resources…./> 标签被用来映射静态页面。 mapping 属性必须是一个指定一个 http 请求的 URL 模式的 Ant 模式。 location 属性必须指定一个或者多个具有包含图片,样式表,JavaScript 和其他静态内容的静态页面的资源目录位置。多个资源位置可以使用逗号分隔这些值的列表来被指定。
下面是 Spring 视图文件 WEB-INF/jsp/index.jsp 的内容。这将是一个登陆页面,这个页面将发送一个请求来访问 staticPage 的 service 方法,它将重定向这个请求到 WEB-INF/pages 文件夹中的一个可用的静态页面。
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <html> <head> <title>Spring Landing Page</title> </head> <body> <h2>Spring Landing Pag</h2> <p>Click below button to get a simple HTML page</p> <form:form method="GET" action="/HelloWeb/staticPage"> <table> <tr> <td> <input type="submit" value="Get HTML Page"/> </td> </tr> </table> </form:form> </body> </html>
下面是 Spring 视图文件 WEB-INF/pages/final.htm 的内容:
<html> <head> <title>Spring Static Page</title> </head> <body> <h2>A simple HTML page</h2> </body> </html>
最后,下面是包含在你的 web 应用程序中的 Spring 和其他库的列表。你仅仅需要将这些文件拖拽到 WebContent/WEB-INF/lib 文件夹中。
-
commons-logging-x.y.z.jar
-
org.springframework.asm-x.y.z.jar
-
org.springframework.beans-x.y.z.jar
-
org.springframework.context-x.y.z.jar
-
org.springframework.core-x.y.z.jar
-
org.springframework.expression-x.y.z.jar
-
org.springframework.web.servlet-x.y.z.jar
-
org.springframework.web-x.y.z.jar
-
spring-web.jar
一旦你完成了创建源代码和配置文件后,导出你的应用程序。右键单击你的应用程序,并且使用 Export > WAR File 选项,并且在 Tomcat 的 webapps文件夹中保存你的 HelloWeb.war 文件。
SpringMVC拦截器Filter完整功能实例
建立一个完整功能的Filter:
package com.tom.web.filter;
import com.tom.util.BaseUtil;
import com.tom.util.CacheHelper;
import com.tom.util.Constants;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class TomFilter
implements Filter
{
private String[] permitUrls = null;
public void init(FilterConfig config) throws ServletException
{
String permitUrls = config.getInitParameter("permitUrls");
if (BaseUtil.isNotEmpty(permitUrls)) {
this.permitUrls = permitUrls.split(";");
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
HttpSession session = req.getSession();
req.setAttribute("tm_base", Constants.getSiteBaseUrl(req));
boolean isPermit = isPermitUrl(req);
String uid = String.valueOf(session.getAttribute(
Constants.SESSION_USERID));
String sessionid = String.valueOf(session.getAttribute(
Constants.SESSION_SESSID));
if (BaseUtil.isEmpty(uid)) {
if (isPermit) {
chain.doFilter(req, res);
} else {
toLoginPage(req, res);
}
}
else
{
int checkcode = checkLoginStatus(uid, sessionid);
if (checkcode == 1) {
chain.doFilter(req, res);
} else {
if (checkcode == 0)
{
session.setAttribute(Constants.SESSION_USERID, null);
session.setAttribute(Constants.SESSION_USERNAME, null);
session.setAttribute(Constants.SESSION_USERTYPE, null);
session.setAttribute(Constants.SESSION_USERGID, null);
session.setAttribute(Constants.SESSION_SESSID, null);
toLoginPage(req, res);
return;
}
session.setAttribute(Constants.SESSION_USERID, null);
session.setAttribute(Constants.SESSION_USERNAME, null);
session.setAttribute(Constants.SESSION_USERTYPE, null);
session.setAttribute(Constants.SESSION_USERGID, null);
session.setAttribute(Constants.SESSION_SESSID, null);
toStatusExpiredPage(req, res);
return;
}
}
}
public void destroy()
{
permitUrls = null;
}
private int checkLoginStatus(String uid, String sessionid)
{
String cache_sessionid = (String)CacheHelper.getCache(
"SessionCache", "U" + uid);
if (BaseUtil.isEmpty(cache_sessionid)) {
return 0;
}
if (cache_sessionid.equals(sessionid)) {
return 1;
}
return -1;
}
private void toStatusExpiredPage(HttpServletRequest request,
HttpServletResponse response)
{
String path = request.getContextPath();
String html = "<script>top.location.href='" + path +
"/common/expired.thtml';</script>";
PrintWriter out = null;
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
out = response.getWriter();
request.setCharacterEncoding("UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
out.println(html);
out.flush();
out.close();
}
private void toLoginPage(HttpServletRequest request, HttpServletResponse
response)
{
String path = request.getContextPath();
String html = "<script>top.location.href='" + path +
"/login.thtml';</script>";
PrintWriter out = null;
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
out = response.getWriter();
request.setCharacterEncoding("UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
out.println(html);
out.flush();
out.close();
}
private boolean isPermitUrl(HttpServletRequest request) {
boolean isPermit = false;
String currentUrl = getCurrentURI(request);
if ((permitUrls != null) && (permitUrls.length > 0)) {
String[] arrayOfString;
int j = (arrayOfString = permitUrls).length;
for (int i = 0; i < j; i++)
{ String url = arrayOfString[i];
if (url.equals(currentUrl)) {
isPermit = true;
break;
}
}
}
return isPermit;
}
private String getCurrentURI(HttpServletRequest request) {
String path = request.getContextPath();
String uri = request.getRequestURI();
uri = uri.substring(path.length());
return uri;
}
}
/*
* Qualified Name: com.tom.web.filter.TomFilter
* Java Class Version: 6 (50.0)
* JD-Core Version: 0.7.1
*/
配置web.xml:
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>TomFilter</filter-name> <filter-class>com.tom.web.filter.TomFilter</filter-class> <init-param> <param-name>permitUrls</param-name> <param-value>/login.thtml;/common/login.do;/common/logout.do;/inc/checkcode.jsp; /common/expired.thtml;/register.thtml;/common/register.do</param-value> </init-param> </filter> <filter-mapping> <filter-name>TomFilter</filter-name> <url-pattern>*.thtml</url-pattern> </filter-mapping> <filter-mapping> <filter-name>TomFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>
注意区分
javax.servlet.Filter;
和
org.springframework.web.filter.*;
近期评论