1、文件夹建立(必须按照这个规范,文件名和文件夹名必须一致)

a、在%TOMCAT_HOME%\webapps下建立一个文件夹,取名MyWebsit

b、在MyWebsit文件夹下新建WEB_INF文件夹

c、在WEB_INF文件夹下建立classes文件夹以及web.xml(网络配置文件)




2、开发servlet

a、引入servlet-api.jar包(位于tomcat6.0安装路径的lib下)



b、实现servlet接口
//这是我的第一个servlet
//使用实现servlet接口的方式开发 package com.test; import javax.servlet.*;
import java.io.*;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException; public class Hello implements Servlet {
/**
* Method init
*
*
* @param parm1
*
@throws ServletException
*
*该函数用于初始化servlet(类似于构造函数)
*该函数只会被调用一次(当用户第一次访问该servlet是被调用)
*/
public void init(ServletConfig parm1) throws ServletException {
// TODO: 在这添加你的代码
System.out.println("init it");
} /**
* Method getServletConfig
*
*
* @return
*
*/
public ServletConfig getServletConfig() {
// TODO: 在这添加你的代码
return null;
} /**
* Method service
*
*
* @param parm1
* @param parm2
*
@throws ServletException
@throws IOException
*
*这个函数处理业务逻辑
*程序员把业务逻辑代码写在这里
*当用户每访问该servlet,都会被调用
*req 用于获得客户端(浏览器)信息
*res 用于向客户端(浏览器)返回信息
*/
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
// TODO: 在这添加你的代码
//从res中得到PrintWriter
System.out.println("service it");
PrintWriter pw = res.getWriter();
pw.println("hello world");
} /**
* Method getServletInfo
*
*
* @return
*
*/
public String getServletInfo() {
// TODO: 在这添加你的代码
return "";
} /**
* Method destroy
* 销毁servlet实例
* 即释放内存
*1、reload 该 servlet ->webapp
*2、关闭tomcat
*3、关机
*
*/
public void destroy() {
// TODO: 在这添加你的代码
System.out.println("destory");
} }

3、部署servlet

在web.xml文件中,添加代码
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--> <web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"> <display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description> <servlet>
<!--给servlet取名,可以任意-->
<servlet-name>Hello</servlet-name>
<!--指明servlet的路径,(包名+类名)-->
<servlet-class>com.test.Hello</servlet-class>
</servlet> <servlet-mapping>
<!--给servlet取名,可以任意-->
<servlet-name>Hello</servlet-name>
<!--这是在浏览器中输入的访问该servlet的url,任意的-->
<url-pattern>/sp</url-pattern>
</servlet-mapping> </web-app>

4、运行




5、servlet生命周期




6、继承GenericServlet实现servlet

//通过继承GenericServlet开发servlet

package com.test;
import javax.servlet.GenericServlet;
import java.io.*;
import javax.servlet.*; public class HelloGen extends GenericServlet {
//重写service方法
public void service(ServletRequest req, ServletResponse res) {
//返回hello,world! generic
try {
PrintWriter pw = res.getWriter();
pw.println("hello,world! generic");
} catch(Exception e) {
e.printStackTrace();
}
}
}

7、继承HttpServlet实现servlet

需要重写doGet(),  doPost() 方法。



//继承HttpServlet实现servlet

package com.test;

import javax.servlet.http.*;
import java.io.*; public class HelloHttp extends HttpServlet {
//处理doGet请求
public void doGet(HttpServletRequest req, HttpServletResponse res) {
//业务逻辑
try {
PrintWriter pw = res.getWriter();
pw.println("hello http");
} catch(Exception e) {
e.printStackTrace();
}
}
//处理doPost请求
public void doPost(HttpServletRequest req, HttpServletResponse res) {
this.doGet(req, res);
}
}

8、登陆界面

//登陆界面

package com.test;

import javax.servlet.http.*;
import java.io.*; public class Login extends HttpServlet {
//处理doGet请求
public void doGet(HttpServletRequest req, HttpServletResponse res) {
//业务逻辑
try { //解决中文乱码
res.setContentType("text/html;charset=gbk"); PrintWriter pw = res.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("<h1>登录界面</h1>");
pw.println("<form action=LoginDeal method=post>"); //action填写的是需要跳转的页面
pw.println("用户名:<input type=text name=username /><br />");
pw.println("密码:<input type=password name=passwd /><br />");
pw.println("<input type=submit value=login /><br />");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>");
} catch(Exception e) {
e.printStackTrace();
}
}
//处理doPost请求
public void doPost(HttpServletRequest req, HttpServletResponse res) {
this.doGet(req, res);
}
}




9、验证

//登陆过后的处理

package com.test;

import javax.servlet.http.*;
import java.io.*; public class LoginDeal extends HttpServlet {
//处理doGet请求
public void doGet(HttpServletRequest req, HttpServletResponse res) {
//业务逻辑
try {
//接收用户名和密码
String u = req.getParameter("username");
String p = req.getParameter("passwd");
//验证
if(u.equals("sp")&&p.equals("123")) {
//合法,跳转到welcome
res.sendRedirect("Welcome");
} else {
//不合法,跳转到登陆界面
res.sendRedirect("Login"); //参数是需要调转的页面的url
} } catch(Exception e) {
e.printStackTrace();
}
}
//处理doPost请求
public void doPost(HttpServletRequest req, HttpServletResponse res) {
this.doGet(req, res);
}
}

10、验证成功后跳转

//欢迎界面
package com.test; import javax.servlet.http.*;
import java.io.*; public class Welcome extends HttpServlet {
//处理doGet请求
public void doGet(HttpServletRequest req, HttpServletResponse res) {
//业务逻辑
try {
PrintWriter pw = res.getWriter();
pw.println("welcome");
} catch(Exception e) {
e.printStackTrace();
}
}
//处理doPost请求
public void doPost(HttpServletRequest req, HttpServletResponse res) {
this.doGet(req, res);
}
}




11、web.xml部署文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--> <web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"> <display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description> <servlet>
<!--给servlet取名,可以任意-->
<servlet-name>Hello</servlet-name>
<!--指明servlet的路径,(包名+类名)-->
<servlet-class>com.test.Hello</servlet-class>
</servlet> <servlet>
<!--给servlet取名,可以任意-->
<servlet-name>HelloGen</servlet-name>
<!--指明servlet的路径,(包名+类名)-->
<servlet-class>com.test.HelloGen</servlet-class>
</servlet> <servlet>
<!--给servlet取名,可以任意-->
<servlet-name>HelloHttp</servlet-name>
<!--指明servlet的路径,(包名+类名)-->
<servlet-class>com.test.HelloHttp</servlet-class>
</servlet> <servlet>
<!--给servlet取名,可以任意-->
<servlet-name>Login</servlet-name>
<!--指明servlet的路径,(包名+类名)-->
<servlet-class>com.test.Login</servlet-class>
</servlet> <servlet>
<!--给servlet取名,可以任意-->
<servlet-name>LoginDeal</servlet-name>
<!--指明servlet的路径,(包名+类名)-->
<servlet-class>com.test.LoginDeal</servlet-class>
</servlet> <servlet>
<!--给servlet取名,可以任意-->
<servlet-name>Welcome</servlet-name>
<!--指明servlet的路径,(包名+类名)-->
<servlet-class>com.test.Welcome</servlet-class>
</servlet> <servlet-mapping>
<!--给servlet取名,可以任意-->
<servlet-name>Hello</servlet-name>
<!--这是在浏览器中输入的访问该servlet的url,任意的-->
<url-pattern>/Hello</url-pattern>
</servlet-mapping> <servlet-mapping>
<!--给servlet取名,可以任意-->
<servlet-name>HelloGen</servlet-name>
<!--这是在浏览器中输入的访问该servlet的url,任意的-->
<url-pattern>/HelloGen</url-pattern>
</servlet-mapping> <servlet-mapping>
<!--给servlet取名,可以任意-->
<servlet-name>HelloHttp</servlet-name>
<!--这是在浏览器中输入的访问该servlet的url,任意的-->
<url-pattern>/HelloHttp</url-pattern>
</servlet-mapping> <servlet-mapping>
<!--给servlet取名,可以任意-->
<servlet-name>Login</servlet-name>
<!--这是在浏览器中输入的访问该servlet的url,任意的-->
<url-pattern>/Login</url-pattern>
</servlet-mapping> <servlet-mapping>
<!--给servlet取名,可以任意-->
<servlet-name>LoginDeal</servlet-name>
<!--这是在浏览器中输入的访问该servlet的url,任意的-->
<url-pattern>/LoginDeal</url-pattern>
</servlet-mapping> <servlet-mapping>
<!--给servlet取名,可以任意-->
<servlet-name>Welcome</servlet-name>
<!--这是在浏览器中输入的访问该servlet的url,任意的-->
<url-pattern>/Welcome</url-pattern>
</servlet-mapping> </web-app>

Servlet+Tomcat 界面登录的更多相关文章

  1. tomcat管理界面登录无法进入

    问题: 在打开tomcat界面之后,点击Manger App准备进入管理界面,路径:http://localhost:8080/manager/html. 输入正确的用户名和密码,但是出现401界面. ...

  2. servlet数据库验证登录

    servlet数据库验证登录 一.将数据库连接和验证封装为一个单独的类 import java.sql.*; public class SQLtest { // JDBC 驱动名及数据库 URL st ...

  3. 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404

     maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...

  4. Ubuntu登录异常: 输入正确的密码, 但是却无法进入系统, 总是返回到登录界面, 但是用ctrl+alt+F1-F文字界面登录都可以进入。

    今天打开电脑的时候, 在输入密码之后, 未进入ubuntu的桌面, 而是显示了几行英文之后有返回到了登录界面.显示的英文如下: could not write bytes: Broken pipe   ...

  5. Ubuntu 14.04 或者16.04开启root账户登录和图形界面登录root时候的报错解决方法

    1.打开终端 2.输入sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 3.添加一行:greeter-show-manual-login ...

  6. JavaWeb_利用Servlet处理注册登录请求

    利用Servlet处理注册登录请求 程序结构 <%@page import="com.Gary.model.User"%> <%@ page language=& ...

  7. IDEA+JSP+Servlet+Tomcat简单的登录示例

    1.用IDEA新建Java WEB项目并配置Tomcat 这一部分可以参考之前的一篇随笔 https://www.cnblogs.com/lbhym/p/11496610.html 2.导入Servl ...

  8. solr基于tomcat增加主界面登录权限

    tomcat-user.xml增加下面标签(用户名,密码,角色)<user username="admin" password="new-password" ...

  9. Java EE之servlet实现用户登录

    1.在连接数据库的JAVA类中添加查询功能: 在这之前有一个连接数据库的方法: Connection conn=null; PreparedStatement stat=null;           ...

随机推荐

  1. MyEclipse中创建maven工程

    转载:http://blog.sina.com.cn/s/blog_4f925fc30102epdv.html     先要在MyEclipse中对Maven进行设置: 到此Maven对MyEclip ...

  2. 第三部分 MediaPlayer的主要实现分析

    第三部分 MediaPlayer的主要实现分析 3.1 JAVA程序部分    在packages/apps/Music/src/com/android/music/目录的MediaPlaybackS ...

  3. poj 3041 Asteroids (二分图的最大匹配 第一题)

    题目:http://poj.org/problem?id=3041 题意:在某个n*n的空间内,分布有一些小行星,某人在里面打炮,放一枪后某一行或某一列的行星就都没了,让求最少的打炮数. 然后把每行x ...

  4. mysql 查看表的类型

    MySQL 数据表主要支持六种类型 ,分别是:BDB.HEAP.ISAM.MERGE.MYISAM.InnoBDB. 这六种又分为两类,一类是”事务安全型”(transaction-safe),包括B ...

  5. Codeforces 374B - Inna and Nine

    原题地址:http://codeforces.com/problemset/problem/374/B 这道题没什么难度,但是考场上就是没写对.Round #220彰显了它的逗比性质——这道题的“标算 ...

  6. [原]Unity3D深入浅出 - GUI控件

    Unity的GUI类提供了丰富的界面控件,通过组合这些控件,完成和用户交互的界面. Lable:绘制文本和图片 Box:绘制一个图形框 Button:绘制一个响应单击事件的按钮 RepeatButto ...

  7. C#字符串与char数组互转!

    字符串转换成Char数组string str="abcdefghijklmnopqretuvwxyz";char[] chars=str.ToCharArray(); char数组 ...

  8. 嵌入式Linux系统运行流程图

    /************************************************************************ * 嵌入式Linux系统运行流程图 * 说明: * ...

  9. 更改nginx默认的网页目录

    默认网站根目录为/usr/local/nginx/html,要将它改成/homw/www vi /usr/local/nginx/conf/nginx.conf 将其中的           loca ...

  10. Spring事务隔离级别和传播特性

    相信每个人都被问过无数次Spring声明式事务的隔离级别和传播机制吧!今天我也来说说这两个东西. 加入一个小插曲, 一天电话里有人问我声明式事务隔离级别有哪几种, 我就回答了7种, 他问我Spring ...