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

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

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

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,之后进行一系列的配置,配置完成后的样子:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>org.smart4j</groupId>
  5. <artifactId>chapter1</artifactId>
  6. <version>1.0.0</version>
  7. <properties>
  8. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  9. </properties>
  10. <build>
  11. <plugins>
  12. <!-- Compile -->
  13. <plugin>
  14. <groupId>org.apache.maven.plugins</groupId>
  15. <artifactId> maven-compiler-plugin</artifactId>
  16. <version>3.3</version>
  17. <configuration>
  18. <source>1.8</source>
  19. <target>1.8</target>
  20. </configuration>
  21. </plugin>
  22. <!-- Test -->
  23. <plugin>
  24. <groupId>org.apache.maven.plugins</groupId>
  25. <artifactId>maven-surefire-plugin</artifactId>
  26. <version>2.18.1</version>
  27. <configuration>
  28. <skipTests>true</skipTests>
  29. </configuration>
  30. </plugin>
  31. <!-- Tomcat -->
  32. <plugin>
  33. <groupId>org.apache.tomcat.maven</groupId>
  34. <artifactId>tomcat7-maven-plugin</artifactId>
  35. <version>2.2</version>
  36. <configuration>
  37. <path>/${project.artifactId}</path>
  38. </configuration>
  39. </plugin>
  40. </plugins>
  41. </build>
  42.  
  43. <packaging>war</packaging>
  44.  
  45. <dependencies>
  46. <!-- Servlet -->
  47. <dependency>
  48. <groupId>javax.servlet</groupId>
  49. <artifactId>javax.servlet-api</artifactId>
  50. <version>3.1.0</version>
  51. <scope>provided</scope>
  52. </dependency>
  53. <!-- JSP -->
  54. <dependency>
  55. <groupId>javax.servlet.jsp</groupId>
  56. <artifactId>jsp-api</artifactId>
  57. <version>2.2</version>
  58. <scope>provided</scope>
  59. </dependency>
  60. <!-- JSTL -->
  61. <dependency>
  62. <groupId>javax.servlet</groupId>
  63. <artifactId>jstl</artifactId>
  64. <version>1.2</version>
  65. <scope>runtime</scope>
  66. </dependency>
  67. </dependencies>
  68. </project>

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

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

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

  1. <build>
  2. <plugins>
  3. <!-- Compile -->
  4. <plugin>
  5. <groupId>org.apache.maven.plugins</groupId>
  6. <artifactId> maven-compiler-plugin</artifactId>
  7. <version>3.3</version>
  8. <configuration>
  9. <source>1.8</source>
  10. <target>1.8</target>
  11. </configuration>
  12. </plugin>
  13. <!-- Test -->
  14. <plugin>
  15. <groupId>org.apache.maven.plugins</groupId>
  16. <artifactId>maven-surefire-plugin</artifactId>
  17. <version>2.18.1</version>
  18. <configuration>
  19. <skipTests>true</skipTests>
  20. </configuration>
  21. </plugin>
  22. <!-- Tomcat -->
  23. <plugin>
  24. <groupId>org.apache.tomcat.maven</groupId>
  25. <artifactId>tomcat7-maven-plugin</artifactId>
  26. <version>2.2</version>
  27. <configuration>
  28. <path>/${project.artifactId}</path>
  29. </configuration>
  30. </plugin>
  31. </plugins>
  32. </build>

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

  1. <packaging>war</packaging>

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

  1. <dependencies>
  2. <!-- Servlet -->
  3. <dependency>
  4. <groupId>javax.servlet</groupId>
  5. <artifactId>javax.servlet-api</artifactId>
  6. <version>3.1.0</version>
  7. <scope>provided</scope>
  8. </dependency>
  9. <!-- JSP -->
  10. <dependency>
  11. <groupId>javax.servlet.jsp</groupId>
  12. <artifactId>jsp-api</artifactId>
  13. <version>2.2</version>
  14. <scope>provided</scope>
  15. </dependency>
  16. <!-- JSTL -->
  17. <dependency>
  18. <groupId>javax.servlet</groupId>
  19. <artifactId>jstl</artifactId>
  20. <version>1.2</version>
  21. <scope>runtime</scope>
  22. </dependency>
  23. </dependencies>

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

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

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

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

  1. package org.smart4j.chapter1;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.annotation.WebServlet;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;import java.io.IOException;
  7. import java.text.DateFormat;
  8. import java.text.SimpleDateFormat;
  9. import java.util.Date;
  10. @WebServlet("/hello")
  11. public class HelloServlet extends HttpServlet{
  12. @Override
  13. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  14. DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  15. String currentTime = dateFormat.format(new Date());
  16. req.setAttribute("currentTime", currentTime);
  17. req.getRequestDispatcher("/jsp/hello.jsp").forward(req, resp);
  18. }
  19. }

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

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Hello</title>
  5. </head>
  6. <body>
  7. <h1>Hello!</h1>
  8. <h2>当前时间为:${currentTime}</h2>
  9. </body>
  10. </html>

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
我照着书上的方法上传时候一直提示错误:“fatal: The current branch master has no upstream branch.”。后来我又重新从git上先clone下来,然后把仓库导入项目根目录下 之后才正常提交,可能是我操作有问题,但是我也一直没有找到问题在哪儿,只好用最笨的方法了。。。。。

Javaweb项目框架搭建-准备篇的更多相关文章

  1. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  2. 权限管理系统之项目框架搭建并集成日志、mybatis和分页

    前一篇博客中使用LayUI实现了列表页面和编辑页面的显示交互,但列表页面table渲染的数据是固定数据,本篇博客主要是将固定数据变成数据库数据. 一.项目框架 首先要解决的是项目框架问题,搭建什么样的 ...

  3. (三) Angular2项目框架搭建心得

    前言: 在哪看到过angular程序员被React程序员鄙视,略显尴尬,确实Angular挺值得被调侃的,在1.*版本存在的几个性能问题,性能优化的"潜规则"贼多,以及从1.*到2 ...

  4. go语言实战教程:实战项目资源导入和项目框架搭建

    从本节内容开始,我们将利用我们所学习的Iris框架的相关知识,进行实战项目开发. 实战项目框架搭建 我们的实战项目是使用Iris框架开发一个关于本地服务平台的后台管理平台.平台中可以管理用户.商品.商 ...

  5. 为实践javaweb项目,搭建了相应环境

    为实践javaweb项目,搭建了相应环境,现总结一下. JDK与JRE的安装与配置 前提准备: 1.我们下载的JDK安装包里面既包含JDK又包含JRE: 2.要确认你的电脑里面没有JDK和JRE的残留 ...

  6. .Net Core3.0 WebApi 项目框架搭建 五: 轻量型ORM+异步泛型仓储

    .Net Core3.0 WebApi 项目框架搭建:目录 SqlSugar介绍 SqlSugar是国人开发者开发的一款基于.NET的ORM框架,是可以运行在.NET 4.+ & .NET C ...

  7. .Net Core3.0 WebApi 项目框架搭建:目录

    一.目录 .Net Core3.0 WebApi 项目框架搭建 一:实现简单的Resful Api .Net Core3.0 WebApi 项目框架搭建 二:API 文档神器 Swagger .Net ...

  8. .Net Core3.0 WebApi 项目框架搭建 一:实现简单的Resful Api

    .Net Core3.0 WebApi 项目框架搭建:目录 开发环境 Visual Studio 2019.net core 3.1 创建项目 新建.net core web项目,如果没有安装.net ...

  9. .Net Core3.0 WebApi 项目框架搭建 二:API 文档神器 Swagger

    .Net Core3.0 WebApi 项目框架搭建:目录 为什么使用Swagger 随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.后端分离的形态,而且前端技术和后端技 ...

随机推荐

  1. Android之解析XML

    1.XML:可扩展标记语言. 可扩展标记语言是一种很像超文本标记语言的标记语言. 它的设计宗旨是传输数据,而不是显示数据. 它的标记没有被预定义.需要自行定义标签. 它被设计为具有自我描述性. 是W3 ...

  2. vim+vundle配置

    Linux环境下写代码虽然没有IDE,但通过给vim配置几个插件也足够好用.一般常用的插件主要包括几类,查找文件,查找符号的定义或者声明(函数,变量等)以及自动补全功能.一般流程都是下载需要的工具,然 ...

  3. samba服务

    安装samba服务步骤ps -e 查看进程ps -e | grep 文件名 管道符的使用rpm -qa 安装包的查看rpm -qa | grep samba 抓Samba安装包 注释:包与包之间有依赖 ...

  4. BZOJ 3238: [Ahoi2013]差异 [后缀数组 单调栈]

    3238: [Ahoi2013]差异 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 2326  Solved: 1054[Submit][Status ...

  5. angularJS(5)

    angularJS(5) 一,数据循环:特别要注意作用域 使用ng-repeat指令. <div ng-app="myApp" ng-controller="myC ...

  6. 我的MYSQL学习心得(十二) 触发器

    我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...

  7. Xamarin.Android-捕获未处理异常(全局异常)

    一.前言 android中如果出现了未处理的异常,程序会闪退,这是非常不好的用户体验,很多用户会因此卸载APP,因此未处理的异常是应该尽力避免的. 有些很难避免的异常(如:IO.网络等),应在代码中进 ...

  8. ASP.NET 5 Beta 7 版本

    在 VS2015 发布的同时,微软也发布了 ASP.NET 5 的路线图(详见ASP.NET 5 Schedule and Roadmap : https://github.com/aspnet/ho ...

  9. 如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

    相信很多开发者目前的系统还是Win7或Mac,一般不会为了开发某个程序而重装系统,所以我们就需要用到VMware这类的虚拟机来模拟预期的开发环境.在开始介绍前,给大家说明下我当前的软硬件环境,本文所讲 ...

  10. 一种简单,轻量,灵活的C#对象转Json对象的方案(续)

    本文参考资料 一种简单,轻量,灵活的C#对象转Json对象的方案 [源码]Literacy 快速反射读写对象属性,字段 一段废话 之前我已经介绍了这个方案的名称为JsonBuilder,这套方案最大的 ...