一个简单的jsp+servlet登录界面的总结
这个登录界面我是用eclipse+tomcat7来实现的(网上比较多都是用myeclipse来做的)
1.首先是关于servlet部署的问题
首先你的servlet类要写在WEB-INF的Class文件夹里面。(如果是eclipse就写在Java resources的src文件夹中,它其实也就是写在WEB-INF的Class文件夹里面)
如果你用eclipse的servlet类,它用的部署方法是 @WebServlet 标注来部署的,就是在类前面加上这个备注和name,url-pattern等其他信息。
这里我用的是部署描述符web.xml的方法,它在web-inf目录下。 对于web.xml,<web-app></web-app>是它的根元素。我们要部署servlet用的标签是:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>CheckAccount</servlet-name>
<servlet-class>com.ht.servlet.CheckAccount</servlet-class>
</servlet>
其中一个servlet元素必须包含一个servlet-name元素和一个servlet-class元素,或者一个servlet元素和jsp-file元素 servlet-name元素定义的servlet名称必须在应用程序中是唯一的。
servlet-class元素是该sevlet类的全路径名(它会在class文件夹里开始找)
然后是部署需要的servlet-mapping标签
<servlet-mapping>
<servlet-name>CheckAccount</servlet-name>
<url-pattern>/CheckAccount</url-pattern>
</servlet-mapping>
这个元素映射一个servlet到url模式,该元素必须有一个servlet-name元素和url-pattern元素。
servlet-name的值一定要和你的servlet标签里的servlet-name的值一样
url-pattern的值就是我们在输入网址的时候的url。 比如我输入
http://localhost:8080/TestWeb/CheckAccout
它就会跳到servlet的页面上,这里来解释一下关于url的知识:
http://localhost:8080 我们可以理解为是我们的服务器地址,而该地址之后的部分我们统称为:RequestURI
/TestWeb 是我的ServletConext的上下文地址,我们称为ServletContext Path,可以简单理解为部署项目时的webapps目录下的项目名(其实就是我的项目名)
/CheckAccount 是我们的Servlet的地址,我们称为Servlet Path,这里就是需要与我们的<url-pattern>匹配的内容,本来我们要访问的话,是要输入完整的路径的,但经过web.xml配置后,就可以通过这个映射找到。
关于url-pattern元素还有个用法:
1.当我使用<url-pattern>/*</url-pattern>时,我们可以匹配所有的请求,即所有的请求都会经过该标签对应的Servlet
此时就需要注意静态资源的请求,因为当我们使用http://localhost:8080/TestWeb/Login.jsp时,依然会匹配该Servlet,
而很多静态资源其实是不需要经过Servlet的,例如:js,css,html,jsp,img等静态资源文件,此时就需要在该Servlet中对静态资源做特殊处理
2.如果配有如下两个<url-pattern>标签时,URL地址为http://localhost:8080/TestWeb/CheckAccount时又是如何匹配的呢?
<url-pattern>/CheckAccount</url-pattern> <url-pattern>/*</url-pattern>
上边我们已经说过,/*可以匹配所有的请求,而/CheckAccount也可以匹配我们的URL地址,此时URL地址会自动且优先的进行精确匹配,即/CheckAccount,
且只匹配一次,也就是说一旦匹配到一个Servlet即执行该Servlet不再对其他Servlet进行匹配,
当我们输入一个http://localhost:8080/TestWeb/login时,由于此时匹配不到/CheckAccount所以只能匹配/*了
(url-pattern介绍转自http://www.cnblogs.com/keryang/p/5151632.html)
还有个welcome-file-list元素也比较有趣,它是指定当用户在浏览器中输入的URL不包含一个Servlet名称或jsp文件页面或静态资源的时候显示的页面或servlet。
<welcome-file-list>
<welcome-file>/Index.jsp</welcome-file>
</welcome-file-list>
发现这个welcome-file元素的路径一般都这种格式,然后一般就放在你的项目文件下面,像这样:

那个Index.jsp就是欢迎页,你输入http://localhost:8080/TestWeb/就可以访问这个Index.jsp.
也就是说,这个welcome-file的路径查找是以你的项目文件(TestWeb)为起点开始找的
2.关于表单<form>的action属性:(来自http://blog.sina.com.cn/s/blog_9f33f9170102v7h4.html)
在写web页面时,标签 是很常见的元素,它的一个属性是action,用来标识将表单交给谁去处理。很显然,这里有一个地址的问题,而且是在服务器这边的地址。比如服务器内的一个servlet。
先看一下下面的URL:
http://192.168.1.1:8080/hello/index.html
一个URL由
服务器地址: http://192.168.1.1:8080
WEB应用上下文: /hello
网页或请求: /index.html
三个部分组成。
WEB应用发布时,WEB应用上下文可以自行指定,如放在ROOT/下的话,WEB应用上下文就是空,如:
http://192.168.1.1:8080/index.html
它的WEB应用上下文就是空。
HTML协议中要求,form的action属性,以“/”开头是绝对路径,不以“/”开头的是相对路径。
绝对路径是相对于服务器地址而言的,相对路径是相对于当前网页或请求而言的。
举一个例子,你的当前网页位置是:
http://192.168.1.1:8080/hello/page/index.html
其中/hello是WEB应用上下文;/page/index.html是网页。
在这个网页上有一个请求需要指向
http://192.168.1.1:8080/hello/servlet/checkUser.cgi
index.html中的form应该怎么写呢?
可以写成绝对路径(相对于http:/192.168.1.1:8080)
...
也可以写成相对路径(相对于http://192.168.1.1:8080/hello/page)
...
一个简单的jsp+servlet登录界面的总结的更多相关文章
- 初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面
1:JSP JSP的基本语法:指令标识page,include,taglib;page指令标识常用的属性包含Language用来定义要使用的脚本语言:contentType定义JSP字符的编码和页面响 ...
- 一个简单的jsp+servlet实例,实现简单的登录
开发环境myeclipse+tomcat6 1.先创建web project,项目名为RegisterSystem, 2.在WebRoot 目录下创建login.jsp文件,只需修改body中的内容, ...
- 最简单的jsp+servlet的增删改查代码
package ceet.ac.cn.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...
- 一个简单的jsp自定义标签
学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...
- jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)
JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 一.项目文件结构和plist文件 二.实现效果 三.代码示例 1.没有使用配套的类,而是直接使用xib文 ...
- OpenCms JSP 模板开发——创建一个简单的JSP模板
OpenCms中的JSP模板就是一个普通的JSP页面,在特定的位置使用标签来包含内容,在这个的例子中,我们将要开发一个简单JSP模板,这个模板只是在内容(如<html>.<body& ...
- 一个简单的JSP程序示例
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...
- 用bootstrap做一个背景可轮转的登录界面
用bootstrap做一个背景可轮转的登录界面 一.总结 一句话总结:用css3的动画的 @keyframes 规则,制作轮转图. 1.用bootstrap做一个背景可轮转的登录界面? a.动画部分用 ...
随机推荐
- UICollectionView 具体解说学习
UICollectionView 和UITableView非常像,是APPLE公司在iOS 6后推出的用于处理图片这类UITableView 布局困难的控件,和UITableView 一样,它也有自己 ...
- iOS学习之动画效果的实现
// // ViewController.m // UI-动画练习 // // Created by jzq_mac on 15/7/22. // Copyright (c) 2015年 jz ...
- Webapp兼容性布局
- apache使用总结
由于某些原因,经常会使用apache(有时用nginx) 现在我主要用它做反向代理,偶尔弄一下负载均衡和添加head头 apache官网 http://httpd.apache.org/ 下载地址 h ...
- extends && implements
final声明的类不能被继承 方法的重写(@Override): 两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型(java里无论怎样都对) 子类抛出异常小于等于 ...
- String的属性和方法
package com.zzu.java.array; public class TtString { /** * @author 程路超 * @param args */ public static ...
- Lightoj 1012 - Guilty Prince
bfs遍历一遍就行了. /* *********************************************** Author :guanjun Created Time :2016/6/ ...
- YTU 2801: 用数字造数字(II)
2801: 用数字造数字(II) 时间限制: 1 Sec 内存限制: 128 MB 提交: 244 解决: 168 题目描述 输入一个3位以上的整数,求其中最大的两个数字之和与最小的数字之和之间的 ...
- UltraEdit mac破解版
2018-01-17 增加18.00.0.19破解 去官网下载原载,先运行一次,再在终端里执行下面代码就可以破解完成! printf '\x31\xC0\xFF\xC0\xC3\x90' | dd s ...
- HDU - 2066 一个人的旅行(最短路径)(模板)
d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到这个城市的距离设为0),草儿想去的地方有D个: 求D个城市中距离草儿家最近的距离. s.进行1次单源最短路,找出 ...