array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Javaweb项目框架搭建-准备篇 - 爱码网

Javaweb项目框架搭建-准备篇

前言
Java从大二开始学习到现在大四也有差不多两年了,但是由于之前一直在玩,没有认真学过,直到现在才开始重新学习。也是很凑巧,看到了黄勇老师的《架构探险》,于是便开始学习写Java Web框架。

1.开发工具
《架构探险》书中提到说IntelliJ IDEA(简称IDEA)是业界最牛的Java开发工具,但是它有两个版本,一个社区版不花钱,属于开源的个人版,但是功能不全面,另一个是完全版,属于收费的企业版,功能全面。于是我本着要用就用最好的的宗旨,毅然下载了收费版的,在安装过程中也发现了这款开发工具的一个小Bug,因为这个工具收费版有30天的试用期,我们可以在安装之前把电脑系统时间修改到推后半年,比如现在是2016年12月,我们可以改成2017年6月,这样安装完成后它的试用期就会到2017年7月,之后先关闭软件再把系统时间改回来就OK了,它的试用期依然是2017年7月。

Javaweb项目框架搭建-准备篇

之后的安装过程就比较简单了,提醒一点的是,最好不要改的太多,推后的时间在一年之内,超过一年安装会有报错。

2.做一个小项目
在开始正式工作之前,先做一个Hello World(好像所有开发都离不开这一步)。一是熟悉一下Maven,二是复习一下Servlet和JSP。开始!!!

1.创建一个Maven的项目
Maven 是一个项目管理和构建自动化工具。不过对于程序员而言,更看重它的项目构建功能。但是对于使用IDEA作为开发工具,也不用单独下载、配置Maven,因为IDEA默认将其整合了。使用IDEA创建Maven项目很简单:
  a.点击右上角工具栏的File/New/Project。
  b.在弹出框选择Maven,然后Next。
  c.在接下来的窗口中,这三个是必填的,很重要的东西。GroupId建议为网站域名的倒排方式,确保唯一性,类似于Java的包名;ArtifactId是模块名称,这个自行起名。
  d.继续Next,输入Project name,然后Finish。
到此,Maven项目就创建完成了。

2.配置Maven
打开Maven配置文件pom.xml,之后进行一系列的配置,配置完成后的样子:

Javaweb项目框架搭建-准备篇
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">             
   <modelVersion>4.0.0</modelVersion>    
   <groupId>org.smart4j</groupId>    
   <artifactId>chapter1</artifactId>    
   <version>1.0.0</version>
   <properties>    
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   <build>    
     <plugins>        
       <!-- Compile -->        
       <plugin>            
          <groupId>org.apache.maven.plugins</groupId>            
          <artifactId> maven-compiler-plugin</artifactId>            
          <version>3.3</version>            
          <configuration>                
            <source>1.8</source>                
            <target>1.8</target>            
          </configuration>        
       </plugin>        
       <!-- Test -->        
       <plugin>            
         <groupId>org.apache.maven.plugins</groupId>             
         <artifactId>maven-surefire-plugin</artifactId>            
         <version>2.18.1</version>            
         <configuration>                
           <skipTests>true</skipTests>            
         </configuration>        
       </plugin>        
       <!-- Tomcat -->        
       <plugin>            
         <groupId>org.apache.tomcat.maven</groupId>            
         <artifactId>tomcat7-maven-plugin</artifactId>             
         <version>2.2</version>            
         <configuration>                
            <path>/${project.artifactId}</path>            
         </configuration>        
       </plugin>    
     </plugins>
   </build>

   <packaging>war</packaging>  
  
   <dependencies>        
     <!-- Servlet -->        
     <dependency>            
       <groupId>javax.servlet</groupId>            
       <artifactId>javax.servlet-api</artifactId>            
       <version>3.1.0</version>            
       <scope>provided</scope>        
     </dependency>        
     <!-- JSP -->        
     <dependency>            
       <groupId>javax.servlet.jsp</groupId>            
       <artifactId>jsp-api</artifactId>            
       <version>2.2</version>            
       <scope>provided</scope>        
     </dependency>        
     <!-- JSTL -->        
     <dependency>            
       <groupId>javax.servlet</groupId>            
       <artifactId>jstl</artifactId>            
       <version>1.2</version>            
       <scope>runtime</scope>        
     </dependency>    
   </dependencies>  
</project>
Javaweb项目框架搭建-准备篇

首先是配置编码格式为UTF-8:

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>

然后配置JDK为1.8(这个看个人,因为我电脑里JDK版本为1.8)和Tomcat为7:

Javaweb项目框架搭建-准备篇
<build>    
   <plugins>        
   <!-- Compile -->        
   <plugin>            
      <groupId>org.apache.maven.plugins</groupId>            
      <artifactId> maven-compiler-plugin</artifactId>            
      <version>3.3</version>            
      <configuration>                
         <source>1.8</source>                
         <target>1.8</target>            
         </configuration>        
   </plugin>        
   <!-- Test -->        
   <plugin>            
      <groupId>org.apache.maven.plugins</groupId>             
      <artifactId>maven-surefire-plugin</artifactId>            
      <version>2.18.1</version>            
      <configuration>                
         <skipTests>true</skipTests>            
      </configuration>        
   </plugin>        
   <!-- Tomcat -->        
   <plugin>            
      <groupId>org.apache.tomcat.maven</groupId>            
      <artifactId>tomcat7-maven-plugin</artifactId>             
      <version>2.2</version>            
      <configuration>                
         <path>/${project.artifactId}</path>            
      </configuration>        
   </plugin>    
 </plugins>
</build>
Javaweb项目框架搭建-准备篇

再然后配置打包类型为war包:

<packaging>war</packaging>

最后配置Servlet、JSP、JSTL(Maven三坐标必须提供,之后的Servlet和JSP因为Tomcat自带有相应的jar包,故scope设置为provided;而JSTL是在运行时需要,编译时不需要,故scope设置为runtime):

Javaweb项目框架搭建-准备篇
<dependencies>        
   <!-- Servlet -->        
   <dependency>            
      <groupId>javax.servlet</groupId>            
      <artifactId>javax.servlet-api</artifactId>            
      <version>3.1.0</version>            
      <scope>provided</scope>        
   </dependency>        
   <!-- JSP -->        
   <dependency>            
      <groupId>javax.servlet.jsp</groupId>            
      <artifactId>jsp-api</artifactId>            
      <version>2.2</version>            
      <scope>provided</scope>        
   </dependency>        
   <!-- JSTL -->        
   <dependency>            
      <groupId>javax.servlet</groupId>            
      <artifactId>jstl</artifactId>            
      <version>1.2</version>            
      <scope>runtime</scope>        
   </dependency>    
</dependencies>
Javaweb项目框架搭建-准备篇

到此,Maven的配置也完成了(确实比Eclipse之类的配置简单的多)。

3.转换为Java Web项目
只需3步,轻松搞定,
a.在main目录下新建webapp目录。
b.在webapp目录下新建WEB-INF目录。
c.在WEB-INF目录下新建web.xml。
此时,屏幕右下角会有个提示:

Javaweb项目框架搭建-准备篇

那么表示,web项目已经创建完成。

4.编写Servlet类和JSP页面
在main目录下的java目录下新建包,包名,然后新建一个Servlet(HelloServlet),该Servlet负责页面跳转,并且将当前时间转换为标准格式传递到页面当中。(在这里有一点,我照着黄勇老师的步骤在Servlet页面跳转时候的路径是"/WEB-INF/jsp/hello.jsp",但是页面一直报错提示404,后来我查找资料才找到,页面不能写在"/WEB-INF"目录下,于是改成下面这个样子就可以显示了):

Javaweb项目框架搭建-准备篇
package org.smart4j.chapter1;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet{    
      @Override    
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        
       DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        
       String currentTime = dateFormat.format(new Date());        
       req.setAttribute("currentTime", currentTime);        
       req.getRequestDispatcher("/jsp/hello.jsp").forward(req, resp);   
   }
}
Javaweb项目框架搭建-准备篇

之后新建一个负责显示的JSP页面,该页面接收Servlet传递过来的参数并通过JSTL表达式显示:

Javaweb项目框架搭建-准备篇
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
  <title>Hello</title>
 </head>
 <body>
  <h1>Hello!</h1>
  <h2>当前时间为:${currentTime}</h2>
 </body>
</html>
Javaweb项目框架搭建-准备篇

5.配置Tomcat
写好页面和Servlet之后就需要配置一个服务器,把写的东西在可以展示出来。在这里肯定是要配置Tomcat服务器了:
  a.点击右上角工具栏中的“Edit Configurations...”(这是一个下拉框)。
  b.点击左上角的“+”按钮,选择“Tomcat Server/Local”。
  c.Name自己起个名字,然后去掉勾选的After launch。
  d.点击Application server右边的“Configure...”按钮,配置Tomcat(这个会自动帮你寻找你电脑上的Tomcat)。
  e.切换到Deployment选项卡,点击右侧“+”按钮,选择“Artifact...”选项,在弹出框中选择“项目名:war exploded”,点击OK,然后在Application context中输入项目名。
  f.切换回Server选项卡,在On frame deactivation下拉框选择“Update resources”选项,点击OK。
到此,Tomcat配置完成。

6.上传到git

相关文章: