零,名词解释(课外阅读,不看不影响后续教程)

0.1 jsp

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。它实现了Html语法中的java扩张(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

0.2 servlet

0.2.1 Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。

0.2.2 CGI(Common Gateway Interface):是服务器上的程序,常常是根据用户输入访问数据库的程序。php里面是不是有个CGI,每一个请求都是进程。

0.2.3 servlet是在服务器上运行的小程序,跟cgi很类似,不过请求来的时候,新开一个线程来处理,所以比cgi快。有趣的命名:Servlet=Server+Applet,表示小服务程序

Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:
  客户端发送请求至服务器端;
  服务器将请求信息发送至Servlet
  Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求
  服务器将响应返回给客户端

0.3 Tomcat

(是一种容器):供了servlet功能的服务器,叫做servlet容器。对web程序来说,servlet容器的作用就相当于桌面程序里操作系统的作用,都是提供一些编程基础设施。(简单来说Servlet要在容器内工作)

0.4 eclipse

日蚀,是java开发的经典IDE(集成开发环境),为了开发j2ee,有jee版本的eclipse,该版本配置好了很多东西,方便使用。

【参考本教程前,请确保安装配置好(jdk,tomcat)环境】

一,新建Dynamic Web Project

  1. 新建运行环境,这里使用Tomcat
  2. Tomcat8 支持3.1的servlet
  3. 只要使用tomcat就会生成Servers,正常的,如果删除了会导致tomcat在eclipse中表现失常

二。 hello world

  1. WebContent下新建jsp File-  index.jsp
  2. 在两个body标签内写入  Hello world
  3. 右击项目,run as - run on Server, 或者点运行图标
  4. 可以见到效果,url:http://localhost:8080/<project name>/
  5. eclipse内置的浏览器可以看到效果,此时tomcat已经启动。所以如果之前启动过tomcat应该先关掉。此时另开浏览器输入如上url也是能看到效果的

三。将hello world改造成登陆界面

1,将body标签改为这样

<body>please login<form action="login">username:<input type="text" name="username"><br/>password:<input type="text" name="password"><br/><input type="submit"></form>
</body>

2,新建一个javaBean作为数据包裹。这个bean是为了后续工作方便,暂时不是必要的。在src下建立一个 AccountBean.java

有两个成员变量,String username; String password, 选中两行声明变量的语句,右键,source-Generate getter and setter

3,关注代码中的action="login"这个单词,在你点击submit后可以看到url跳转到http://localhost:8080/<project name>/login?username=asdf&password=123

可以看到url中的login,就是从index.jsp 中的action来的。后面就是这个form的两对<key, value>。当你点击submit时候,页面跳转了,携带着参数,这叫做redirect

四。写一个servlet去处理这个跳转和相关的数据

0,贴代码后来在逐个解释

package eva.servlet;import java.io.IOException;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 eva.bean.AccountBean;@WebServlet(name="CheckServlet", urlPatterns="/login")
public class CheckAccount extends HttpServlet {/*** */private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {AccountBean account = new AccountBean();String pwd = request.getParameter("password");String username = request.getParameter("username");account.setPassword(pwd);account.setUsername(username);if(!username.isEmpty()){response.sendRedirect("jsp/logSuccess.jsp");}else{response.sendRedirect("");}}
}

1,以往使用Servlet需要在xml中写配置,告诉tomcat  Servlet的类名,这个servlet处理哪个路径的请求。现在采用@开头的注释的方法。Tomcat8 Servlet3.0开始支持这种写法

       @WebServlet(name="CheckServlet", urlPatterns="/login")

2,首先是个包名,声明这个类是在这个包里面。这个CheckAccount类是处理Http信息的servlet类,所以继承HttpServlet。

3,serialVersionUID,序列化需要的一个id,序列化超出本文范围,不讲。其实没有这个也ok,因为我们没有用到序列化的功能。

4,doGet函数,处理Http协议里面的Get动作,同样非常重要的还有doPost,类似的是处理Http协议的post动作(方法)。这个方法接收到一个request,这个request其实就是发生点击submit后产生的一个Http的Get动作。这个request对象里面包含了这个请求的信息,可以用各种getter取得。其中要取得参数可以用value=getParameter(key)。

5,有了这些参数后,我们就可以连接数据库查询这个用户是不是这个密码。其实jsp在取得的时候已经可以连接数据库查,但是jsp应该只是负责显示,所以查库这种事应该交由业务层去做,业务层里面其实就是servlet。篇幅限制,下一篇再继续链接数据库,这里为了方便讲述跳转,先不做验证工作。

6,函数从request取得数据,处理后,应该返回一个response,sendRedirect的意思是页面重定向到某路径,不是/开头的成为相对路径,在网页开发一般使用相对路径。成功就跳到成功页面,不成功就跳回默认首页。为了方便管理页面,我在WebContent建了一个目录jsp,里面放置各种jsp。

7,解释一下路径问题:可以观察到  http://localhost:8080/<project name>/redirectPath

五,写个JavaServer Pages (JSPs)显示成功登陆

1,贴个代码,这里用了jsp入门示例的显示时间的经典例子

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page language="java"%>
<!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>
<% java.util.Date d = new java.util.Date(); %>Welcome!!  Login success<br/>Today's date is <%=d.toString() %>
</body>
</html>

六,在回显jsp中显示用户名

有人就要问了,在成功登陆的页面,我想要显示用户名,这个要求一点不过分吧,为什么不做呢?

原因在于response的时候用了sendRedirect,可以看到服务器是发送了一个新地址给浏览器,所以在回显的时候,jsp不知道用户名,没人告诉它呀

解决办法:不用sendRedirect而用forward的方法,这个是在服务器内部重定向,服务器请求其他程序(servlet)将取回的结果显示给浏览器,浏览器不知道服务器究竟做什么了。

1,贴代码,将CheckAccount的sendRedirect改成如下

request.getRequestDispatcher("jsp/logSuccess.jsp").forward(request, response);

2,可以看到是将request经过分发器分发给这个路径(代表一个程序Servlet,jsp其实也是一个servlet),原样forward两个参数过去

3,可以看到效果跟之前用重定向的方法一样,但是里面做的事情是不一样的。

4,将登陆成功的jsp的代码改一下,也是从request中取参数,所以说其实jsp就是servlet。

<body>
<% java.util.Date d = new java.util.Date(); %>
<% String s = request.getParameter("username"); %><%=s %>  : welcome<br/>Today's date is <%=d.toString() %>
</body>

环境:

OS :Linux Mint17 xfce 64

jdk:1.8

tomcat:8.0

IDE:Eclipse jee luna

本节教程到此结束,后续例子会接着本文的代码基础上,使用数据库,同时会适当重构一下代码。

EvaDemo_1_basic.zip

最终的代码:http://pan.baidu.com/s/1c0ldR5e

参考资料:

1.讲jsp和servlet的关系
http://www.cnblogs.com/jbelial/archive/2012/03/13/2385601.html

2.http协议 post get方法
http://blog.csdn.net/xiemk2005/article/details/6108618

3. request转发和response重定向

http://zhidao.baidu.com/question/360515312.html

【J2EE】【1.HelloWorld】J2EE基础(jsp,servlet,tomcat,eclipse)相关推荐

  1. 手把手教你用JSP+Servlet+Tomcat实现一个最简单的Web应用

    JSP+Servlet+Tomcat实现一个简单的Web应用 需要使用到的技术 ①JSP ② Servlet ③Tomcat Web开发中的常见概念 Demo *本文针对编程务实实验内容,简单演示一下 ...

  2. java项目如何分工合作,JavaWeb基础 jsp+servlet分工合作的简单示例

    礼悟: 好好学习合思考,尊师重道存感恩.叶见寻根三返一,江河湖海同一体. 虚怀若谷良心主,愿行无悔给最苦.读书锻炼强身心,诚劝且行且珍惜. javaEE:7 javaSE:1.8 JSTL:1.2.2 ...

  3. Jsp+Servlet+tomcat实现简单的登录验证码案例

    首先声明这个案例是我白嫖的,但是嫖到一半发现代码不全,所以就自己就完善了案例代码!希望后续的小狐伴们不要碰到这个坑!!! 话不多说先看效果图: 这是登录首页:(这个案例其实很简陋,但是为了和你们分享, ...

  4. JSP/Servlet基础语法

    相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...

  5. J2EE 框架结构及核心技术基础面面观

    一.J2EE的概念 目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME).适用于桌面系统 ...

  6. Java+Servlet+JSP+Mysql+Tomcat实现Web学生选课管理系统

    Java实现Web学生选课管理系统 一.系统介绍 1.软件环境 2.系统功能 3.数据库 二.系统展示 1.登录页面 2.学生-主页面 3.学生-查看个人信息 4.学生-选择课程 5.学生-查看已选课 ...

  7. 【JSP/SERVLET】Tomcat内置表单身份验证

    一.概述 前面是扯犊子的,JSP/SERVLET基于HTTP规范,提供了几种安全支持,BASIC.DIGEST.FORM.CLIENT-CERT,本文主要介绍一下FORM的安全支持开发,文末有一个小d ...

  8. Web基础之Servlet+JDBC+JSP项目实战记录(一)

    Web基础之Servlet+JDBC+JSP项目实战记录(一) 一.项目说明: 通过前面的学习,我们已经对Servlet有了一定的了解:接下来我们要结合数据库和JSP技术一步一步完成一个小型的动态we ...

  9. request、response揭秘(备java基础,servlet,jsp,javaee)-任亮-专题视频课程

    request.response揭秘(备java基础,servlet,jsp,javaee)-3658人已学习 课程介绍         掌握Request对象的作用,期属性,response特点. ...

  10. 使用JSP/Servlet技术开发新闻发布系统

               第一章:动态网页开发基础  动态网页:是指在 服务器端运行的,使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容 动态网页需要使用服务器端的脚本语言,例如 ...

最新文章

  1. Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
  2. SAP SD 基础知识之Cash Sales和Rush Order的区别
  3. JS本地加密防止嗅探
  4. Python——列表中存放字典遇到的问题
  5. [react-router] React-Router怎么获取URL的参数?
  6. 如何将文件从iPhone或iPad空投到Mac计算机?
  7. 解决虹软人脸识别打开摄像头黑屏的BUG
  8. H264/AVC-基本概念和码流结构
  9. 2019 第十届蓝桥杯Java省赛B组个人题解
  10. STM32使用HSE/HSI配置时钟(六)
  11. Email营销相关名词解释:PEM,UCE,Opt-in,Double Opt-In,Opt-out
  12. linux 命令行管理员身份运行,任意位置以管理员身份打开CMD(命令提示符)
  13. qq邮箱mx服务器,QQ域名邮箱管理系统MX记录是什么?怎么添加设置?
  14. 有哪些好用的思维导图软件?
  15. 链霉亲和素修饰的载玻片Streptavidin coated glass slides(齐岳生物)
  16. 对比学习中的4种经典训练模式
  17. Android 实现简单的锁屏功能
  18. DWG文件有什么方法可以转换为JPG文件
  19. 游客模式android,Android之游客登录模式
  20. 局域网乐趣之二:连接共享设置(示范系统windows2003)

热门文章

  1. matlab 贝叶斯网络学习
  2. 港澳台手机号正则表达式
  3. ELK性能优化实战总结:java私塾初级模拟银源代码
  4. 网络协议梳理(四)(socket、想要实现高并发,可以通过以下四种方式)
  5. 软件设计开发笔记2:基于QT设计串口调试工具
  6. Java设计模式pdf
  7. SecureCRT上传下载位置
  8. 【心里效应】98 个著名的心理效应
  9. vfp体积计算机程序,计算机vfp教程第9章 报表与菜单设计
  10. 自然语言处理入门新手上路