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 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"); //得到jsp中action传来的参数 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. 1. 2. 8. 9. 0. 1. 2. 3. 失敗 4. 5. 16. 在使⽤表单提交数据到服务器的时候有两张⽅式可共选择,⼀个是post⼀个是get。可在 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.
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. 0. 1. 1. 2. 63. 64. 65. 6.


发布评论