Servlet+Tomcat 界面登录
1、文件夹建立(必须按照这个规范,文件名和文件夹名必须一致)
2、开发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
<?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
//继承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 界面登录的更多相关文章
- tomcat管理界面登录无法进入
问题: 在打开tomcat界面之后,点击Manger App准备进入管理界面,路径:http://localhost:8080/manager/html. 输入正确的用户名和密码,但是出现401界面. ...
- servlet数据库验证登录
servlet数据库验证登录 一.将数据库连接和验证封装为一个单独的类 import java.sql.*; public class SQLtest { // JDBC 驱动名及数据库 URL st ...
- 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404
maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...
- Ubuntu登录异常: 输入正确的密码, 但是却无法进入系统, 总是返回到登录界面, 但是用ctrl+alt+F1-F文字界面登录都可以进入。
今天打开电脑的时候, 在输入密码之后, 未进入ubuntu的桌面, 而是显示了几行英文之后有返回到了登录界面.显示的英文如下: could not write bytes: Broken pipe ...
- 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 ...
- JavaWeb_利用Servlet处理注册登录请求
利用Servlet处理注册登录请求 程序结构 <%@page import="com.Gary.model.User"%> <%@ page language=& ...
- IDEA+JSP+Servlet+Tomcat简单的登录示例
1.用IDEA新建Java WEB项目并配置Tomcat 这一部分可以参考之前的一篇随笔 https://www.cnblogs.com/lbhym/p/11496610.html 2.导入Servl ...
- solr基于tomcat增加主界面登录权限
tomcat-user.xml增加下面标签(用户名,密码,角色)<user username="admin" password="new-password" ...
- Java EE之servlet实现用户登录
1.在连接数据库的JAVA类中添加查询功能: 在这之前有一个连接数据库的方法: Connection conn=null; PreparedStatement stat=null; ...
随机推荐
- HDU1312——Red and Black(DFS)
Red and Black Problem DescriptionThere is a rectangular room, covered with square tiles. Each tile i ...
- 分布式全局不重复ID生成算法
分布式全局不重复ID生成算法 算法全局id唯一id 在分布式系统中经常会使用到生成全局唯一不重复ID的情况.本篇博客介绍生成的一些方法. 常见的一些方式: 1.通过DB做全局自增操作 优点:简单.高 ...
- Java API ——包装类
1.包装类的概述 · 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据. · 常用的操作之一:用于基本数据类型与字符串之间的转换. · 基本类型和包装类的对应 为了对基本数据 ...
- 初始化一台linux server来做项目管理和测试
毕业以后很多没做过这么技术的事情了,不过今年要开始咯. Goal: 练手安装Nginx,并且配置不同的server,后端有Tomcat的(JIRA),有PHP(总得有的),还有Tornado和Node ...
- 数据备份--dump
数据中 心操作大量的数据.当遭到破坏时,这就是一场灾难.这时候需要备份来恢复,及时你又大量的备份数据都没用,备份也肯定不是在浪费时间.你也许很幸运从 来没有经历过数据丢失.但是, 由于这种事情极少发生 ...
- 编译GNU Global
GNU Global是一套界面更友好的tag系统,但是因为其支持的语言太少,现在一般使用其为前端,后端一般使用最新的Universal Ctags. 编译办法如下: 1.去GNU Project ht ...
- minitools
1.android 2.linux 3.luoji 4.windows CE ----
- 在运行时切换 WinForm 程序的界面语言 System.ComponentModel.ComponentResourceManager .ApplyResources
Download the code for this article: WinForm-Multilanguages-2.rar (11 KB). 方法二: 下面介绍一种只需对现有代码做较小改动的方法 ...
- 结构体buf_page_t
/** Buffer page (uncompressed or compressed) */ typedef struct buf_page_struct buf_page_t; struct bu ...
- DTD约束文件
在讲解DTD文件之前,我要说说一份合格的XML应该符合怎么样的规则? 就我总结一下几点,大家看看就好了: 1.一份XML有且仅有一个根元素. 2.XML是严格区分大小写的,<book>元素 ...