个人笔记 ψ(._. )>
既是总结也是目录, IDEA 环境下创建 web 项目的基本流程:
- 创建 web 项目(没异议吧)..
- 配置运行环境,部署并运行(当然,是在有默认文件的情况下)
- 重新组织项目结构
- 添加必要的依赖
- 形成最小.原生态.轻量级可用 MVC 结构(JSP& Servlet)
- 打包成 war 部署发布,测试
- 迭代开发,完成后回到 6
- 补充:项目管理
- 补充:优化流程
- 补充:后续
创建 web 项目
打开 IDEA
→ Create New Project
→ Java / Java EE / WebApplication 左边打勾,下面不用选(现在不都用 SSM 嘛)
→ Create web.xml 左边打勾 → Next
→ 修改项目名、路径 → Finish
配置运行环境,部署并运行(当然,是在有默认文件的情况下)
1、配置运行环境与部署
点击菜单栏 Run
→ Edit Configurations... → Run/Debug Configurations 窗口
→ 左上角绿色的小加号 → Tomcat Server / Local →
之后需要在这个窗口里做两件事情(配置本地 tomcat 以及部署 web 应用):
1、选择 Server → Configure... → 绿色加号 →
添加本地 tomcat 路径
2、选择 Deployment → 右上角绿色小加号 → Artifact →
看到形如上面的窗口 → Apply → OK
2、运行
点击菜单栏 Run → 第一个绿色的小三角 Run 'xxxxxx'
→ 一切正常的话,我们就可以通过浏览器访问默认创建的 index.jsp 页面了
3、相关资料
Intellijidea建javaWeb以及Servlet简单实现
重新组织项目结构
PS. 以下内容纯属个人偏好,仅供参考!
1、基本项目结构
在 Project Structure → Modules 里配置文件会方便一些:
最开始先设置成这样就够用了:
由上至下各个文件夹的功能:
src 用来放未编译的源代码( .java 文件);
src\main\java 用来放主程序源代码;
src\main\sql 用来放 DDL;
src\test\java 用来放测试程序源代码 ;
web 文件夹最终会被放到服务器的 tomcat 目录下;
web 目录下但不在 WEB-INF 内的文件可以通过 URL 直接访问;
web\WEB-INF 内的文件无法通过 URL 直接访问,通常在外面放一个 入口.html (或者 jsp)就可以了;
web\WEB-INF\views 各种 .jsp 文件(MVC 模式中的 view);
web\WEB-INF\classes 存放源代码编译后的 .class 字节码;
web\WEB-INF\lib 源代码用到的各种依赖包(.jar);
2、配置 lib
如果这个时候把 jar 包放在 web\WEB-INF\lib 是没办法找到这些包的,需要把 lib 添加为 Jar Directory:
3、存放其他多媒体资源(例如图片、视频等)
好多网站似乎都是 img js css 分布式存储的。。例如图片放在 img.sample.com ,js 放在 js.sample.com
事实上全部放在外面已经整体上形成一个 github page 了。 所有 东西 都是 静态的, 我转念一想 这样 又 何尝不可????!!!【从头开始理清思路】
进化路径难道不是 静态网 --> 动态网 后台仅 提供 返 json 的接口
博客园的 图片 确实 是这样存的,但是真的就这样完全开源了, 可是这样,本质 上 js css html 本来就是 完全对 客户公开的 本来就是 要发到 客户端运行的!
4、相关资料
jsp,html,css,js 等文件放在 web 根目录以外 怎么引用?
添加必要的依赖
形成最小.原生态.轻量级可用 MVC 结构(JSP& Servlet)
dao 层:对应 model 层,唯一的职责就是提供数据
service 层:业务逻辑
web 层:对应 controller 层,高度简洁
对 url 发起 http get 请求 --> web.xml mapper --> 分派给servlet --> servlet取得http请求调用对应方法(get.. post等) 【处理】 返回一个http response (可能type 是html也可能不是)
jsp 本质上也是 servlet ,这种关系 就和 scss 和 css 的关系一样
我所知道的另外一种结构
以第一种 结构作为 基础 引入 ajax 向 url 发起请求得到 json 再用 json 数据 改变视图。
以登陆为例子:
用 jsp& servlet :登陆按钮必然是一个提交表单的input 指向某个 url, 点击后 发送一个 http post 请求, 收到一个新的 http页面,或者 刷新为 错误页面
用 ajax & json:登陆按钮可以是任何 东西, 点击 后 发送 ajax异步请求 ,客户端 通过返回的信息决定怎么做。
在服务端看来 两者都是 发起了一个 http 请求, 只不过一个返回 json数据 一个返回一个更新过的 .html
在客户端看来 第一种比较轻松, 完全 不用管其它,所有操作就是 发送请求, 更新页面就好了, 发 http 请求 ,接 html (不要在意url)不需要 javascript
第二种的话, 发 http 请求,接 json,根据 json 内容做相应动作,例如抛出错误, 关键字是 ajax
如何打包成 war
怎样令它在网上可访问
怎样优化步骤?
如何管理项目?