1. 在java项目下手动写一个web程序

    • 步骤:

      ①创建一个java项目并在根目录创建一个WebContent目录文件

      ②WebContent下创建WEB-INF目录文件

      ③WEB-INF下创建classes和lib目录文件以及web.xml文件

      ④在项目根目录下的src目录文件中创建一个Person类,构造一个返回字符串的方法,将编译后得到的.class文件复制到

      创建的classes文件中去(该.class文件在项目bin文件夹下,该文件夹在eclipse中并没有显示)

      ⑤创建一个jsp页面,在页面中创建Person实例,并调用方法

      ⑥把WebContent复制到tomcat中的webapp目录下,启动tomcat

      ⑦在浏览器中输入http://localhost:8080/manager/html,进入到tomcat管理页面中,点击项目WebContent

      ⑧运行项目之后,在浏览器中访问http://localhost:8080/helloworld/hello.jsp,在命令提示符中就会显示出,返回的字符串。

    • 目录结构

      -WebConrtent

      -WEB-INF(固定不可变)

      -classes(固定不可变)

      -lib

      -web.xml

      HTML页面

      JSP页面

      图片

    • 问题:以上步骤需要两部复制目录文件,一次是复制.class文件,再一次是复制WebContent目录文件,操作麻烦。

      1.解决复制.class文件的办法:可以修改.class文件的默认生成目录,在项目上右键Build Path——>

      Configure Build Path——>中间点击Source,

      下面default out folder即是默认的.class文件的生成目录,修改即可。

      2.解决复制Context文件的办法:首先在E:\apache-tomcat-7.0.55\conf\Catalina\localhost路径下创建一个.xml

      文件,路径没有就创建一个,文件命名随意,如“hello.xml”,文件内容:

<Context path="\\test"
docBase="E:\\workspace\\Demo5\\WebContent" reloadable="true"/>

其中path的值随意,docBase的值为第一步所创建的context的文件路径,即实际文件路径。

reloadable是指当修改了docBase下的classes目录中的.class文件后,tomcat是否重新加载web应用 。

重新访问项目时,在tomcat管理程序中可以看到xml文件的名字,或者在浏览器中输入:

http://localhost:8080/hello/hello.jsp,其中hello便是创建的xml文件,hello.jsp是创建的context

目录下的jsp文件。

注意:.class文件一定要在classes目录中

  • 创建的java文件和jsp文件及内容

    java文件:
package test;
public class Person {
public String getInfo(){
return "Person....." ;
}
}

jsp文件:

<%@ page import="test.Person"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Person person = new Person();
System.out.println(person.getInfo());
%>
hello World!
</body>
</html>

注意:请求一个页面时,页面上所运行的程序或者类是一个方法,同时根据web.xml中Servlet的配置文件运行另外的java类是另一方法。一个是页面请求根据配置文件,访问servlet,另一个是直接访问这个Servlet

比如:这个hello.jsp页面中用到了Person类,但是根据web.xml配置文件中,Servlet节点hello,就用到了HelloServlet类

运行jsp页面使用:http://localhost:8080/Demo4/hello.jsp

运行Servlet:http://localhost:8080/Demo4/hello

Servlet(2)—java项目下web应用程序的更多相关文章

  1. Java项目下jar包的放置

    build path:引用 web-inf/lib:固定 eclipse编译项目是根据build path的.如果不用eclipse来发布项目的话,就会找不到jar. tomcat运行时首先在它自己的 ...

  2. Java项目下的classpath路径包括哪里

    https://my.oschina.net/zjllovecode/blog/916927 classpath指的是.classpath下kind="src" 的路径

  3. 说说Java Web中的Web应用程序|乐字节

    大家好,我是乐字节的小乐,今天接着上期文章<Javaweb的概念与C/S.B/S体系结构>继续往下介绍Java Web ,这次要说的是web应用程序. 1. Web 应用程序的工作原理 W ...

  4. 使用IzPack打包JAVA Web应用程序

    使用IzPack打包JAVA Web应用程序步骤如下: 这里使用IzPack-4.3.5 + launch4j-3.1.0-beta1-win32.zip(绿色版)对Web应用程序打包,打包后即可对我 ...

  5. Java面试题 Web+EJB & Spring+数据结构& 算法&计算机基础

    六.Web 部分:(共题:基础40 道,基础37 道,中等难度3 道) 122.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? [基础] 答:Web 容器加载Servlet ...

  6. 如何将常规的web 应用程序转化为云上多租户 SaaS 解决方案

    如何将web 应用程序转化为多租户 SaaS 解决方案 https://www.ibm.com/developerworks/cn/cloud/library/cl-multitenantsaas/i ...

  7. web 应用程序转化为多租户 SaaS 解决方案

    web 应用程序转化为多租户 SaaS 解决方案 https://www.ibm.com/developerworks/cn/cloud/library/cl-multitenantsaas/inde ...

  8. 第7章 使用springMVC构建Web应用程序 7.1 springMVC配置

    最近在看spring in action第3版,这里搭建一个简单的spring mvc,也算书没白看,当然老鸟可以不屑了,这里只是给自己做个笔记,配置也尽量删烦就简, Spring MVC的核心是Di ...

  9. Java开发工程师(Web方向) - 02.Servlet技术 - 第3章.Servlet应用

    第3章.Servlet应用 转发与重定向 转发:浏览器发送资源请求到ServletA后,ServletA传递请求给ServletB,ServletB生成响应后返回给浏览器. 请求转发:forward: ...

随机推荐

  1. IO流-file

    1.1 IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把 ...

  2. 【BZOJ4764】弹飞大爷

    题解: 这个应该还是比较简单的 首先比较容易想到用lct来维护 我们可以建立一个特殊点 然后我们要处理环 其实只要判断它和不和这个特殊点联通就行了 那么当它不是环了我们怎么还原呢 只要对每个在根节点记 ...

  3. Nginx代理实现内网主机访问公网服务

    通过Nginx代理实现内网主机访问公网和接口服务 1.需求: m2.test.com为公司测试环境的微信测试域名,因为要调用微信服务接口需要访问外网,现通过Nginx代理现实此功能. 2.环境如下: ...

  4. 如何访问https的网站?-【httpclient】

    备注:本处代码使用groovy和httpclient4.3作为例子进行讲述 在普通方式下,当使用httpclient进行访问某个网站时,大致使用如下的代码进行访问: CloseableHttpClie ...

  5. device not found解决方案

    今天在使用cordova tools进行真机调试的,报了一个错:device not found; 字面意思就是没有发现设备,这时候可以首先尝试重启adb服务 C:\Users\username\Ap ...

  6. Python 面向对象1-面向对象介绍

    一.无论用什么形式来编程,我们都要明确记住以下原则: 1.写重复代码是非常不好的低级行为 2.你写的代码需要经常变更,写代码一定要遵循易读,易改的原则 3.函数编程与OOP(面向对象)的主要区别就是O ...

  7. BZOJ4036 [HAOI2015]按位或 FWT

    原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ4036.html 题目传送门 - BZOJ4036 题意 刚开始你有一个数字 $0$ ,每一秒钟你会随机 ...

  8. 利用图片的灰度平均值来进行分类实现手写图片识别(数据集50000张图片)——Jason niu

    from collections import defaultdict import mnist_loader def main(): training_data, validation_data, ...

  9. Springmvc借助SimpleUrlHandlerMapping实现接口开关功能

    一.接口开关功能 1.可配置化,依赖配置中心 2.接口访问权限可控 3.springmvc不会扫描到,即不会直接的将接口暴露出去 二.接口开关使用场景 和业务没什么关系,主要方便查询系统中的一些状态信 ...

  10. Spark 学习笔记 —— 常见API

    一.RDD 的创建 1)通过 RDD 的集合数据结构,创建 RDD sc.parallelize(List(1,2,3),2) 其中第二个参数代表的是整个数据,分为 2 个 partition,默认情 ...