2023年11月28日发(作者:)

使⽤eclipse开发JavaWeb项⽬,并部署到TomcatC

使⽤eclipse开发Java Web项⽬

本篇⾸先给出Tomcat 8.0的安装及验证过程,然后在eclipse中配置已安装成功的Tomcat服务器,最后新建⼀个Java web⼯程,并绑定已

部署的Tomcat服务器,在⼯程中新建并运⾏JSP⽂件。通过本篇的学习,可以掌握以下内容:

● 部署Tomcat 8.0

● 建⽴本地Server服务器

● 新建Java web开发项⽬

● 建⽴第⼀个JSP⽂件

● 运⾏JSP⽂件

1、部署Tomcat 8.0

Tomcat属于轻量级Web应⽤服务器,相对其它Web服务器来说,Tomcat的最⼤优势在于免费并且代码开源。Java开发者可以利⽤

MySQL数据库服务器、Tomcat Web服务器、Linux操作系统搭建免费且实⽤的Web系统。

Tomcat 8.0或其它版本安装步骤如下:

图2 tomcat 8信息页

(3)在8.0.53版本下载页红⾊线框区域内,分别有zip格式的压缩包、格式的压缩包(⽤于Linux系统)、32-bit Windows zip压缩

包、64-bit Windows zip压缩包。请根据⾃⾝使⽤的操作系统选择不同的压缩包下载。例如,32位的Windows操作系统可以选择32-bit

图5 tomcat欢迎页⾯

如果没有出现欢迎页⾯,则可能是下⾯问题造成的:

(1)tomcat压缩包下载错误。下载的tomcat压缩包和⾃⾝使⽤的操作系统不匹配,需要重新下载tomcat压缩包。

(2)在Preferences设置对话框中,在对话框左侧展开【Server】项,选择Runtime Environment,⽤⿏标单击右侧的【Add…】按

钮,进⼊设置Runtime Environment对话框,如下图所⽰。

图9 Apache Tomcat V8.053添加成功

第⼆步:添加Server服务

图11 New Server对话框

(3)New Server对话框设置项说明如下:

① Server’host name

上图说明Server启动成功,只是该Server还没有关联项⽬。后⾯我们会创建⼀个Java Web项⽬加⼊到该Server。

3、 构建Java Web项⽬

设置完毕,单击【Next>】按钮,进⼊设置项⽬代码存储⽬录对话框。

(2)设置项⽬代码存储⽬录,项⽬代码⼀般存储到⼯程src⽬录下,采⽤默认值即可。单击【Next>】按钮,进⼊Web配置模块,如下图所

1.4 运⾏项⽬⽂件

项⽬创建成功后,项⽬资源⽂件显⽰在Project Explorer窗⼝内,展开TestWeb项⽬,可以看到如下图所⽰的项⽬⽂件组织结构。

图17 TestWeb项⽬组织结构

图19 Run on Server对话框

选择先前配置的Apache Tomcat v8.053 at localhost服务器,并选中下⽅的检查框,以保存该配置项,下次运⾏该项⽬时,就⽆需再进

搭建⼀个完整的javaweb项⽬

转:

主要功能有: 涉及到的知识点有:

1.⽤户注册

2.⽤户登录 t

3.⽤户列表展⽰ 3.过滤器

4.⽤户信息修改 4..EL与JSTL表达式

5.⽤户信息删除

//新建数据库,这⼀步没什么好说的

1. CREATE TABLE `user` (

2. `id` int(11) NOT NULL auto_increment,

3. `name` varchar(255) NOT NULL,

1. package ;

2.

3. import ption;

4.

5. import ;

6. import Chain;

7. import Config;

8. import tException;

9. import tRequest;

0. import tResponse;

1. /**

2. 1.两者都是为了初始化⽤,但是不推荐在构造函数中对servlet做初始化⼯作。

13.

4. t实例的⽣命周期是由容器控制的。构造函数中的初始化⼯作只会在容器构造这个servlet时做⼀次。

15.

6. t的实例是会被多个请求复⽤,但是构造函数却只能提供⼀次初始化,所以必须将初始化⼯作放⼊init中,由容器来控制。

7. */

18.

9. public class EncodingFilter implements Filter{

0. public EncodingFilter(){

1. n("过滤器构造");

2. }

3. public void destroy() {

4. n("过滤器销毁");

5. }

36.

7. public void init(FilterConfig arg0) throws ServletException {

8. n("过滤器初始化");

9. }

40.

1. }

在进⾏过滤器的相应配置

1.

2.

3. xmlns="/xml/ns/javaee"

4. xmlns:xsi="/2001/XMLSchema-instance"

5. xsi:schemaLocation="/xml/ns/javaee

6.

7.

8.

9.

1. package ;

2.

3. import .*;

4.

5. public class DBconn {

6. static String url = "jdbc:mysql://localhost:3306/test?useunicuee=true& characterEncoding=utf8";

7. static String username = "root";

5. ps = eStatement(sql);

6. rs = eQuery(sql);

7. } catch (SQLException e) {

8. n("sql数据库查询异常");

9. tackTrace();

0. }

4. = id;

5. }

6. public String getName() {

7. }

1. package ;

2.

3. import ;

4.

5. import ;

6.

7. public interface UserDao {

8. public boolean login(String name,String pwd);//登录

9. public boolean register(User user);//注册

0. public List getUserAll();//返回⽤户信息集合

5. ();

6. int i =Del("insert into user(name,pwd,sex,home,info) " +

8. e(ing("name"));

9. (ing("pwd"));

1. int i =Del(sql);

2. if(i>0){

3. flag = true;

4. }

5. onn();

6. return flag;

7. }

88.

9. }

在servlet下创建DengluServlet⽤来实现对⽤户登录的操作(Servlet有两种⽅式创建,⼀种⼿⼯创建。另⼀种程序⾃动⽣成。前者⾃⼰创

建java类,实现Servlet具体内容,然后需要去WEB_INF下的去配置servlet . ⽽后者则直接由程序替我们配置好了Servlet)本例

⼦使⽤第⼆种⽅式⽣成Servlet

1. package t;

2.

3. import ption;

4. import riter;

21.

2. String name = ameter("name"); //得到jsp页⾯传过来的参数

3. String pwd = ameter("pwd"); //得到jspaction传来的参数

24.

5. UserDao ud = new UserDaoImpl();

26.

7. //存在⽤户名密码

8. /**

9. ribute表⽰从request范围取得设置的属性,

0. 必须要先setAttribute设置属性,才能通过getAttribute来取得,

1. 设置与取得的为Object对象类型

2. */

3. if((name, pwd)){

4. ribute("xiaoxi", "欢迎⽤户"+name); //request域中放置信息

5. uestDispatcher("/").forward(request, response);//转发到成功页⾯

6. }else{

7. direct(""); //重定向到⾸页

8. }

9. }

40.

1. }

uestDispatcher()有两种跳转:

(1)跳转到⼀个servlet

uestDispatcher("想跳转的servlet名").forward(request, response);

(2)跳转到⼀个页⾯

uestDispatcher("⽂件路径").forward(request, response);

direct("");

direct(url) -- 重定向到指定URL

uestDispatcher(url).forward(request,response) -- 请求转发到指定URL

1:⼆者区别:

redirect 会⾸先发⼀个response给浏览器, 然后浏览器收到这个response后再发⼀个request给服务器, 然后服务器发新的response给浏

览器. 这时页⾯收到的request是⼀个新从浏览器发来的.

forward 发⽣在服务器内部, 在浏览器完全不知情的情况下发给了浏览器另外⼀个页⾯的response. 这时页⾯收到的request不是从浏览器

直接发来了,可能⼰经⽤ribute在request⾥放了数据.在转到的页⾯可直接⽤ribute获得数据。

//

1. package t;

2.

9. e(name);

0. (pwd);

1. (sex);

2. e(home);

3. o(info);

34.

5. UserDao ud = new UserDaoImpl();

36.

7. if(er(user)){

8. ribute("username", name); //request域中放置参数

9. //ribute("xiaoxi", "注册成功");

0. uestDispatcher("/").forward(request, response); //转发到登录页⾯

15.

6. public class Searchall extends HttpServlet {

7. public void doGet(HttpServletRequest request, HttpServletResponse response)

8. throws ServletException, IOException {

9. doPost(request, response);

7. doPost(request, response);

8. }

9. public void doPost(HttpServletRequest request, HttpServletResponse response)

0. throws ServletException, IOException {

21.

2. String id = ameter("id");

3. int userId = nt(id);

14.

5. public class UpdateServlet extends HttpServlet {

16.

7. public void doGet(HttpServletRequest request, HttpServletResponse response)

8. throws ServletException, IOException {

9. doPost(request, response);

0. }

1. <%@ page language="java" import=".*" pageEncoding="utf-8"%>

2. <%

3. String path = textPath();

4. String basePath = eme()+"://"+verName()+":"+verPort()+path+"/";

5. %>

6.

7.

8.

9.

0. My JSP '' starting page

1.

2.

8.

9.

0. My JSP '' starting page

1.

2.

3.

失敗

4.

5.

16.

在使⽤表单提交数据到服务器的时候有两张⽅式可共选择,⼀个是post⼀个是get。可在

中的method属性中指定提交的⽅式。如:

method=>,如果不指定method属性,则会默认该属性为”get”⽅式。

"inputForm""get"

1. <%@ page language="java" import=".*" pageEncoding="utf-8"%>

2.

3.

4.

5. </span><span style='font-size:13.169px;color:#4c4c4c;letter-spacing:0.013px;font-family:HiraginoSansGB-W3;'>登录注册页⾯</span><span style='font-size:13.169px;color:#4c4c4c;letter-spacing:-0.045px;font-family:NimbusSanL-Regu;'>

6.

1. <%@ page language="java" import=".*" pageEncoding="UTF-8"%>

2. <%@ taglib prefix="c" uri="/jsp/jstl/core"%>

3. <%

4. String path = textPath();

5. String basePath = eme()+"://"+verName()+":"+verPort()+path+"/";

6. %>

7.

3.

4.

5.

6. 删除

7.

8.

9.

0.

1.

2.

⽤户注册页⾯

1. <%@ page language="java" import=".*" pageEncoding="utf-8"%>

2. <%

3. String path = textPath();

4. String basePath = eme()+"://"+verName()+":"+verPort()+path+"/";

5. %>

6.

7.

8.

9. My JSP '' starting page

0.

1.

2.

3. 填写个⼈信息:

4.

5.

6.

7.

8.

1.

2.

3. xmlns="/xml/ns/javaee"

4. xmlns:xsi="/2001/XMLSchema-instance"

5. xsi:schemaLocation="/xml/ns/javaee

7.

8.

9. Searchall

0. all

1.

1. /UpdateServlet

2.

63.

64.

65.

6.