【J2EE】【1.HelloWorld】J2EE基础(jsp,servlet,tomcat,eclipse)
零,名词解释(课外阅读,不看不影响后续教程)
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
- 新建运行环境,这里使用Tomcat
- Tomcat8 支持3.1的servlet
- 只要使用tomcat就会生成Servers,正常的,如果删除了会导致tomcat在eclipse中表现失常
二。 hello world
- WebContent下新建jsp File- index.jsp
- 在两个body标签内写入 Hello world
- 右击项目,run as - run on Server, 或者点运行图标
- 可以见到效果,url:http://localhost:8080/<project name>/
- 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)相关推荐
- 手把手教你用JSP+Servlet+Tomcat实现一个最简单的Web应用
JSP+Servlet+Tomcat实现一个简单的Web应用 需要使用到的技术 ①JSP ② Servlet ③Tomcat Web开发中的常见概念 Demo *本文针对编程务实实验内容,简单演示一下 ...
- java项目如何分工合作,JavaWeb基础 jsp+servlet分工合作的简单示例
礼悟: 好好学习合思考,尊师重道存感恩.叶见寻根三返一,江河湖海同一体. 虚怀若谷良心主,愿行无悔给最苦.读书锻炼强身心,诚劝且行且珍惜. javaEE:7 javaSE:1.8 JSTL:1.2.2 ...
- Jsp+Servlet+tomcat实现简单的登录验证码案例
首先声明这个案例是我白嫖的,但是嫖到一半发现代码不全,所以就自己就完善了案例代码!希望后续的小狐伴们不要碰到这个坑!!! 话不多说先看效果图: 这是登录首页:(这个案例其实很简陋,但是为了和你们分享, ...
- JSP/Servlet基础语法
相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...
- J2EE 框架结构及核心技术基础面面观
一.J2EE的概念 目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME).适用于桌面系统 ...
- Java+Servlet+JSP+Mysql+Tomcat实现Web学生选课管理系统
Java实现Web学生选课管理系统 一.系统介绍 1.软件环境 2.系统功能 3.数据库 二.系统展示 1.登录页面 2.学生-主页面 3.学生-查看个人信息 4.学生-选择课程 5.学生-查看已选课 ...
- 【JSP/SERVLET】Tomcat内置表单身份验证
一.概述 前面是扯犊子的,JSP/SERVLET基于HTTP规范,提供了几种安全支持,BASIC.DIGEST.FORM.CLIENT-CERT,本文主要介绍一下FORM的安全支持开发,文末有一个小d ...
- Web基础之Servlet+JDBC+JSP项目实战记录(一)
Web基础之Servlet+JDBC+JSP项目实战记录(一) 一.项目说明: 通过前面的学习,我们已经对Servlet有了一定的了解:接下来我们要结合数据库和JSP技术一步一步完成一个小型的动态we ...
- request、response揭秘(备java基础,servlet,jsp,javaee)-任亮-专题视频课程
request.response揭秘(备java基础,servlet,jsp,javaee)-3658人已学习 课程介绍 掌握Request对象的作用,期属性,response特点. ...
- 使用JSP/Servlet技术开发新闻发布系统
第一章:动态网页开发基础 动态网页:是指在 服务器端运行的,使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容 动态网页需要使用服务器端的脚本语言,例如 ...
最新文章
- Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
- SAP SD 基础知识之Cash Sales和Rush Order的区别
- JS本地加密防止嗅探
- Python——列表中存放字典遇到的问题
- [react-router] React-Router怎么获取URL的参数?
- 如何将文件从iPhone或iPad空投到Mac计算机?
- 解决虹软人脸识别打开摄像头黑屏的BUG
- H264/AVC-基本概念和码流结构
- 2019 第十届蓝桥杯Java省赛B组个人题解
- STM32使用HSE/HSI配置时钟(六)
- Email营销相关名词解释:PEM,UCE,Opt-in,Double Opt-In,Opt-out
- linux 命令行管理员身份运行,任意位置以管理员身份打开CMD(命令提示符)
- qq邮箱mx服务器,QQ域名邮箱管理系统MX记录是什么?怎么添加设置?
- 有哪些好用的思维导图软件?
- 链霉亲和素修饰的载玻片Streptavidin coated glass slides(齐岳生物)
- 对比学习中的4种经典训练模式
- Android 实现简单的锁屏功能
- DWG文件有什么方法可以转换为JPG文件
- 游客模式android,Android之游客登录模式
- 局域网乐趣之二:连接共享设置(示范系统windows2003)