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; ...
随机推荐
- 【转】linux常用命令全集
linux常用命令全集
- 组策略限制添加用户作为服务登录导致ITAtomcat服务无法启动(log on as a service)
[故障类型]:ITA tomcat服务器无法启动. [关 键 词]:Logon as a service 作为服务登录 tomcat loggeter [适用版本]:FusionCloud So ...
- Servlet 下载文件
这几天有点懒散,还好没有忘记看书,上周去了国家图书馆翻阅了一些和Java相关的书籍,其实这些书都是自己以前看过或者听过,按理来说,不应该看自己已经看过的书籍,应该找一些最新的书籍去看,但是每次走到书架 ...
- laravel Authentication and Security
Creating the user modelFirst of all, we need to define the model that is going to be used to represe ...
- python学习笔记四--元组
一.元组: 1. 不可变更的列表 2. 从语法上,她们是编写在小括号里,不是方括号里,列表是编写在方括号里的 3. 圆括号也同时用于表达式,如果想说明这是一个元组,不是表达式,可以在value后,关闭 ...
- 1439. Battle with You-Know-Who(splay树)
1439 路漫漫其修远兮~ 手抄一枚splay树 长长的模版.. 关于spaly树的讲解 网上很多随手贴一篇 貌似这题可以用什么bst啦 堆啦 平衡树啦 等等 这些本质都是有共同点的 查找.删除特 ...
- 初探数位dp
数位dp有着很明显的特点,一般来说是给定区间[l,r]求满足某种条件区间中的数有多少个 朴素解法一般是O(n)的而n往往很大(10^8起步) 这时候我们就要想办法优化,于是就有了数位dp 数位有两个基 ...
- [ahu 1248] NBA Finals
NBA Finals Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 64 MBTotal Submission: 251 ...
- OK335xS Qt network hacking
/********************************************************************** * OK335xS Qt network hacking ...
- c语言中静态区,栈,堆的理解
对于程序员,一般来说,我们可以简单的理解为内存分为三个部分:静态区,栈,堆. 很多书没有把把堆和栈解释清楚,导致初学者总是分不清楚. 其实堆栈就是栈,而不是堆. 堆的英文是heap:栈的英文是stac ...