一个简单的Servlet注册实例

 

 我们在利用Servlet进行web开发的时候 ,运行的不是 JSP页面 而实际上是一个  Java类的对象  。这个类的对象从

javax.sevlet.http.HttpServlet ;这个类是基于HTTP的 Servlet类 我们自己写的 Servlet应该从 这个类派生而来 .

通过我们自己编写的类 以及对web.xml的部署  ,进行web的流程控制 ,实现用户与服务器的交互 。

要注意在 编写Servlet进行相应客户端的时候 我们在调用  Response.setContenType("text/html;charset=gb2312");的时候一定要放在其他函数调用的前面 因为这是设置 相应给客户端页面的 MIME类型 ,设置真个页面的属性。  这个和JSP页面的  <%@ page contenType="text.html;charset=gb2312"%> 意义是一样的 ,如果我们不设置

那么 页面中的交互文本将是乱码 。。。。

下面是一个简单的 Servlet注册代码

 

运行 Tomcat的时候输入如下提交

http://localhost:8888/firstServlet?user=123&password=123     //进行 Servlet提交

web工程的web.xml编写如下代码

<?xml version="1.0" encoding="GB2312"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet> 
    <servlet-name>firstServlet</servlet-name>    //实例名字
    <servlet-class>me.RServlet</servlet-class>  //类
</servlet>
<servlet-mapping>
    <servlet-name>firstServlet</servlet-name>    //实例名字
    <url-pattern>/firstServlet</url-pattern>   //URL访问的时候相对于 WEB应用的 逻辑路径
</servlet-mapping>
 <display-name>
 ch08</display-name>
 <welcome-file-list>       //这是一个默认主页的配置
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>default.html</welcome-file>
  <welcome-file>default.htm</welcome-file>
  <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
</web-app>

 

 

Servlet代码 ,将生成的  RServlet.class复制到 WEB-INF下的 classes目录下      

package me;
import javax.servlet.*; 
import javax.servlet.http.*;  //基于http的 HttpServlet类在此包中
import java.io.*;
import java.sql.*;
public class RServlet extends HttpServlet     //从HttpServlet类派生而来 至少实现以下一个函数
{
  String user  ;
  String password;
  PrintWriter out ;//输出流
  public void init(ServletConfig config) throws ServletException
  {
   super.init(config) ;//调用基类的构造函数进行初始化
  }
  public  void service(ServletRequest req, ServletResponse res) //重写Service来对客户端的请求进行相应
  {  
   res.setContentType("text/html;charset=GB2312");//设置相应页面的格式 如果不设置那么将会导致出现乱码
   //设置 MIME类型应该在 获取PrintWriter之前
   this.getPrintWriter(res);//获得输出流
   if((user=req.getParameter("user"))==null||(password=req.getParameter("password"))==null)//数据不合理就返回
   {    
        out.print("非法数据提交!<br>");
        return ;
   }
   else
   {
     this.addUserToDB(this.user, this.password)   ;//增加用户到数据库
   }
  }
public  void  getPrintWriter(ServletResponse res)
{
 try
 {
   this.out=res.getWriter() ;
 }
 catch(Exception e)
 {
  
 }
}
public  void addUserToDB(String user,String pass)//增加用户数据到数据库
{   
  try
  {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
   Connection cn=DriverManager.getConnection("jdbc:odbc:testDatabase","sa","7603835");//构造一个Connection对象表示和一个数据库的链接
   Statement s=cn.createStatement() ;//创建Statement对象
   String sql="insert into info(username,password) values('"+user+"','"+pass+"')";
   s.executeUpdate(sql) ;//执行SQL语句
   cn.close() ;
  }
  catch(Exception e)
  {
   out.print("Error");
  }
  out.print("数据添加成功!");
}

}
 

时间: 2024-09-20 21:40:01

一个简单的Servlet注册实例的相关文章

php实现的一个简单json rpc框架实例

 这篇文章主要介绍了php实现的一个简单json rpc框架实例,本文给出了RPC服务端和客户端代码以及应用实例,需要的朋友可以参考下     json rpc 是一种以json为消息格式的远程调用服务,它是一套允许运行在不同操作系统.不同环境的程序实现基于Internet过程调用的规范和一系列的实现.这种远程过程调用可以使用http作为传输协议,也可以使用其它传输协议,传输的内容是json消息体. 下面我们code一套基于php的rpc框架,此框架中包含rpc的服务端server,和应用端cl

一个简单的jQuery插件开发实例

两年前写的一个简单的jQuery插件开发实例,还是可以看看的: <script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript"> (function($){ // 为指定节点添加遮盖效果 var methods = { Documents : {}, Options : {}, S

自己封装的一个简单的倒计时功能实例_javascript技巧

因为平常工作中很常用到该功能,所以就利用这次国庆假期,重新梳理与对原有代码进行改善,再集成一个常用的功能,最终封装出这个"简单倒计时"功能. 该倒计时方法具有以下该功能: 1. 根据指定日期与当前的电脑时间进行匹配 2. 通过指定一个数组参数,来设置在每一天内不同的时间段进行倒计时. * 该方法还未通过实际工作的检测,稳定性未知(如果实际工作通过,会删除这段话) function countDown(date,target,filter){ var setTime = new Date

一个简单的JavaScript Map实例(分享)_javascript技巧

用js写了一个Map,带遍历功能,请大家点评下啦. //map.js Array.prototype.remove = function(s) { for (var i = 0; i < this.length; i++) { if (s == this[i]) this.splice(i, 1); } } /** * Simple Map * * * var m = new Map(); * m.put('key','value'); * ... * var s = ""; *

使用MongoDB和JSP实现一个简单的购物车系统实例_JSP编程

本文介绍了JSP编程技术实现一个简单的购物车程序,具体如下: 1 问题描述 利用JSP编程技术实现一个简单的购物车程序,具体要求如下. (1)用JSP编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息. (2)编写一个JSP程序来获取用户提交的登录信息并查询数据库,如果用户名为本小组成员的名字且密码为对应的学号时,采用JSP内置对象的方法跳转到订购页面(显示店中商品的种类和单价等目录信息):否则采用JSP动作提示用户重新登录(注:此页面上要包含前面的登录界面). (3

[WCF REST] 一个简单的REST服务实例

微软在WCF 3.5中就通过提供基于Web HTTP的编程模式使我们很容易地创建基于REST的服务,WCF 4.0中对此进行了较大的改进.为了让读者对REST在WCF中的应用有一个大致的了解,我们先来进行一个简单的实例演示. [源代码从这里下载] 一.定义服务契约 在这个实例中,我们创建一个简单的服务来管理员工的基本信息.至于实例程序的结构,我们依然采用熟悉的包含三个项目(Service.Interface.Service和Client)的解决方案.如下所示的是定义在Service.Interf

使用Node.js实现一个简单的FastCGI服务器实例_node.js

本文是我最近对Node.js学习过程中产生的一个想法,提出来和大家一起探讨. Node.js的HTTP服务器 使用Node.js可以非常容易的实现一个http服务,最简的例子如官方网站的示例: 复制代码 代码如下: var http = require('http');http.createServer(function (req, res) {    res.writeHead(200, {'Content-Type': 'text/plain'});    res.end('Hello Wo

一个简单的读写注册表实例

一.说明: 注册表是Windows重要组成部分,注册表记录了大量有关电脑软硬件的信息.注册表中的值通过其名称标识.值名称由与键名相同的字符组成.值本身可以是字符串.二进制数据或者是32位无符号值.在这里我们主要运用以下技巧: (一).预定义的注册表键.注册表包含了几个预定义键: HKEY_LOCAL_MACHINE 包含描述计算机及其配置的条目.其中包括关于处理器.系统主板.内存和已安装的软件和硬件的信息. HKEY_CLASSES_ROOT 是与文档类型和 OLE\COM 相关的信息的支持键.

求一个简单地登录注册系统就行

问题描述 急用啊,各位大神拜托了! 解决方案 解决方案二:51aspx随便下载个都有解决方案三:Referhere:解决方案四:VS2012,直接建个MVC就带登录注册功能解决方案五:用户注册实例//注册新用户protectedvoidbtnOK_Click(objectsender,EventArgse){//定义一个SqlData的新实例对象SqlDatada=newSqlData();//调用公共类的ExceRead方法,返回SqlDataReader类型的数据SqlDataReaderr