Javaweb项目框架搭建-准备篇

前言

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

1.开发工具

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

IDEA.png

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

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,之后进行一系列的配置,配置完成后的样子:
<?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> <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> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <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> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>runtime</scope> </dependency> </dependencies> </project>
首先是配置编码格式为UTF-8:
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
然后配置JDK为1.8(这个看个人,因为我电脑里JDK版本为1.8)和Tomcat为7(这个也是看个人电脑里Tomcat的版本),看着有些乱,这个代码格式调半天没调好。。。。。:
<build> <plugins> <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> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <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>
再然后配置打包类型为war包:
<packaging>war</packaging>
最后配置Servlet、JSP、JSTL(Maven三坐标必须提供,之后的Servlet和JSP因为Tomcat自带有相应的jar包,故scope设置为provided;而JSTL是在运行时需要,编译时不需要,故scope设置为runtime):
<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency><dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>runtime</scope> </dependency> </dependencies>
到此,Maven的配置也完成了(确实比Eclipse之类的配置简单的多)。

3.转换为Java Web项目

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

valid.png

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

4.编写Servlet类和JSP页面

在main目录下的java目录下新建包,包名,然后新建一个Servlet(HelloServlet),该Servlet负责页面跳转,并且将当前时间转换为标准格式传递到页面当中。(在这里有一点,我照着黄勇老师的步骤在Servlet页面跳转时候的路径是"/WEB-INF/jsp/hello.jsp",但是页面一直报错提示404,后来我查找资料才找到,页面不能写在"/WEB-INF"目录下,于是改成下面这个样子就可以显示了):
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); } }
之后新建一个负责显示的JSP页面,该页面接收Servlet传递过来的参数并通过JSTL表达式显示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>Hello</title></head><body><h1>Hello!</h1><h2>当前时间为:${currentTime}</h2> </body> </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下来,然后把仓库导入项目根目录下 之后才正常提交,可能是我操作有问题,但是我也一直没有找到问题在哪儿,只好用最笨的方法了。。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容