java web 项目架构_Javaweb项目框架搭建-准备篇

前言

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

1.开发工具

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

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

4.0.0

org.smart4j

chapter1

1.0.0

UTF-8

org.apache.maven.plugins

maven-compiler-plugin

3.3

1.8

1.8

org.apache.maven.plugins

maven-surefire-plugin

2.18.1

true

org.apache.tomcat.maven

tomcat7-maven-plugin

2.2

/${project.artifactId}

war

javax.servlet

javax.servlet-api

3.1.0

provided

javax.servlet.jsp

jsp-api

2.2

provided

javax.servlet

jstl

1.2

runtime

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

UTF-8

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

org.apache.maven.plugins

maven-compiler-plugin

3.3

1.8

1.8

org.apache.maven.plugins

maven-surefire-plugin

2.18.1

true

org.apache.tomcat.maven

tomcat7-maven-plugin

2.2

/${project.artifactId}

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

war

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

javax.servlet

javax.servlet-api

3.1.0

provided

javax.servlet.jsp

jsp-api

2.2

provided

javax.servlet

jstl

1.2

runtime

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

3.转换为Java Web项目

只需3步,轻松搞定,

a.在main目录下新建webapp目录。

b.在webapp目录下新建WEB-INF目录。

c.在WEB-INF目录下新建web.xml。

此时,屏幕右下角会有个提示:

4d8e506e06981de133b2bedddfa2f6a3.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表达式显示:

Hello

Hello!

当前时间为:${currentTime}

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下来,然后把仓库导入项目根目录下 之后才正常提交,可能是我操作有问题,但是我也一直没有找到问题在哪儿,只好用最笨的方法了。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值