文档库 最新最全的文档下载
当前位置:文档库 › Servlet实现增删改查功能

Servlet实现增删改查功能

Servlet实现增删改查功能
Servlet实现增删改查功能

MVC模式

M:Model,即模型,对于JavaBean

V:View,即试图,对应JSP页面

C:Controller,即控制器,对应Servlet

1.以下为MVC实现一个简单的增删改查功能

1>显示记录

2>增加一条记录

3>修改一条记录

4>删除一条记录

程序源代码:

M层:模型层

1.封装一条信息的所有属性JavaBean.java ,即VO package muta.bean;

/**

* @author help

*封装一条信息的所有属性

*/

public class JavaBean {

private int id;

private String name;

private String password;

private String sex;

private int age;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.wendangku.net/doc/bb2074432.html, = name;

}

public String getPassword() {

return password;

}

public void setPassword(String password) { this.password = password;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

2.封装数据库连接以及操作JavaBean所用到的方法,即DAO

package muta.bean;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

/**

* @author help

*操作数据库的方法

*/

public class SqlBean {

Connection con;

PreparedStatement pre;

ResultSet rs;

public SqlBean()

{

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

try {

con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/MyServlet","root","1 22828");

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* @author help

*

*插入新的一条记录

* @return

*/

public int getInsert(String sql,JavaBean jBean)

{

int count =0;

try {

pre = con.prepareStatement(sql);

pre.setString(1,jBean.getName());

pre.setString(2,jBean.getPassword());

pre.setString(3,jBean.getSex());

pre.setInt(4,jBean.getAge());

count=pre.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}

finally

{

try {

pre.close();

con.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return count;

}

/**

* @author help

*

*删除一条记录

* @return

*/

public int getDelete(String sql,int id)

{

int count =0;

try {

pre = con.prepareStatement(sql);

pre.setInt(1, id);

count=pre.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}

finally

{

try {

pre.close();

con.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return count;

}

/**

* @author help

*

*根据ID查询某一条记录

* @return

*/

public JavaBean getSearchById(String sql,int id)

{

JavaBean jBean = new JavaBean();

try {

pre = con.prepareStatement(sql);

pre.setInt(1, id);

rs=pre.executeQuery();

while(rs.next())

{

jBean.setId(rs.getInt("id"));

jBean.setName(rs.getString("name"));

jBean.setPassword(rs.getString("password"));

jBean.setSex(rs.getString("sex"));

jBean.setAge(rs.getInt("age"));

}

} catch (SQLException e)

{

e.printStackTrace();

}

return jBean;

}

/**

* @author help

*

*更新某一条记录

* @return

*/

public int getUpdate(String sql,JavaBean jBean)

{

int count =0;

try {

pre = con.prepareStatement(sql);

pre.setInt(5,jBean.getId());

pre.setString(1,jBean.getName());

pre.setString(2,jBean.getPassword());

pre.setString(3,jBean.getSex());

pre.setInt(4,jBean.getAge());

count = pre.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

finally

{

try {

pre.close();

con.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return count;

}

/**

* @author help

*

*显示所有记录

* @return

*/

public List getSearch(String sql)

{

List list = new ArrayList();

//获取prepareStatement对象

try {

pre = con.prepareStatement(sql);

rs=pre.executeQuery();

while(rs.next())

{

JavaBean jBean =new JavaBean();

jBean.setId(rs.getInt("id"));

jBean.setName(rs.getString("name"));

jBean.setPassword(rs.getString("password"));

jBean.setSex(rs.getString("sex"));

jBean.setAge(rs.getInt("age"));

list.add(jBean);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

finally

{

try {

pre.close();

con.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return list;

}

}

V层:试图层

1.显示记录集的页面 SearchList.jsp

<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

显示记录

学生信息如下:


<%

String sql ="select * from student order by id";

java.util.List list =sBean.getSearch(sql);

for(java.util.Iterator it =list.iterator();it.hasNext();)

{

//获取一个JavaBean对象

jBean =(muta.bean.JavaBean)it.next();

%>

<% }%>

ID姓名密码性别年龄
操作
<%=jBean.getId() %><%=jBean.getName() %><%=jBean.getPassword() %><%=jBean.getSex() %><%=jBean.getAge() %>

增加

删除 

更新

2.插入页面Insert.jsp

<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%

String path = request.getContextPath();

String basePath =

request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort( )+path+"/";

%>

插入新值

学生管理页面


姓名:
密码:
性别:

年龄:

查询

3.更新页面Update.jsp

<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath =

request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

更新

学生管理页面


学生ID:"readonly>
学生姓名:">
学生密码:

value="<%=request.getAttribute("password") %>">

学生性别:>男>女

学生年龄:">

查询

4.出错页面Error.jsp

<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

出错啦!!!

对不起!您<%=request.getAttribute("error") %>失败

C层:控制层—Servlet

1.显示记录集的Servlet----SearchById.java

package muta.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import muta.bean.JavaBean;

import muta.bean.SqlBean;

public class SearchById extends HttpServlet {

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request,response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

//获取用户ID

String sid = request.getParameter("id");

int id =Integer.parseInt(sid);

String sql ="select * from student where id=?";

SqlBean sBean = new SqlBean();

JavaBean jBean = sBean.getSearchById(sql, id);

//用户ID

request.setAttribute("id",jBean.getId());

//用户姓名

request.setAttribute("name",jBean.getName());

//用户密码

request.setAttribute("password",jBean.getPassword());

//用户性别

String sex="";

String man="";

String woman="";

if(jBean.getSex()!=null)

{

sex=jBean.getSex().trim();

if(sex.equals("男"))

{

man ="checked";

}

else

{

woman ="checked";

}

}

request.setAttribute("man",man);

request.setAttribute("woman",woman);

//用户年龄

request.setAttribute("age",jBean.getAge());

//转发

request.getRequestDispatcher("Update.jsp").forward(request, response);

}

}

2.增加记录的Servlet----Insert.java

package muta.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import muta.bean.SqlBean;

import muta.bean.JavaBean;

public class Insert extends HttpServlet {

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

doPost(request,response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

//获取前台页面数据

String name =request.getParameter("name");

String password =request.getParameter("password");

String sex =request.getParameter("sex");

String sage = request.getParameter("age");

int age =Integer.parseInt(sage);

//封装到JavaBean对象中去

JavaBean jBean = new JavaBean();

jBean.setName(name);

jBean.setPassword(password);

jBean.setSex(sex);

jBean.setAge(age);

//调用模型层

String sql = "insert into student(name,password,sex,age) values(?,?,?,?)";

SqlBean sBean = new SqlBean();

int count =sBean.getInsert(sql,jBean);

String url="";

if(count>0)

{

url="SearchList.jsp";

}

else

{

url ="error.jsp";

request.setAttribute("error", "");

}

//转发

request.getRequestDispatcher("SearchList.jsp").forward(request, response);

}

}

3.更新记录的Servlet----Updated.java

package muta.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import muta.bean.JavaBean;

import muta.bean.SqlBean;

public class Update extends HttpServlet {

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request,response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

//获得前台表单信息

String sid = request.getParameter("id");

i nt id =Integer.parseInt(sid);

String name =request.getParameter("name");

String password =request.getParameter("password");

String sex =request.getParameter("sex");

String sage = request.getParameter("age");

int age =Integer.parseInt(sage);

//封装到JavaBean对象中去

JavaBean jBean = new JavaBean();

jBean.setId(id);

jBean.setName(name);

jBean.setPassword(password);

jBean.setSex(sex);

jBean.setAge(age);

String sql ="update student set name=?,password=?,sex=?,age=? where id=?";

SqlBean sBean = new SqlBean();

int count =sBean.getUpdate(sql,jBean);

String url="";

if(count>0)

{

url="SearchList.jsp";

}

else

{

url ="error.jsp";

request.setAttribute("error", "更新");

}

request.getRequestDispatcher("SearchList.jsp").forward(request, response);

}

}

4.删除记录的Servlet----Delete.java

package muta.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import muta.bean.SqlBean;

public class Delete extends HttpServlet {

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

doPost(request,response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

//获取超链接传来的数据

String sId = request.getParameter("id");

int id =Integer.parseInt(sId);

//调用模型层删除方法

String sql = "delete from student where id=?";

SqlBean sBean = new SqlBean();

int count =sBean.getDelete(sql, id);

String url="";

if(count>0)

{

url="SearchList.jsp";

}

else

{

url ="error.jsp";

request.setAttribute("error", "删除");

}

//转发

request.getRequestDispatcher(url).forward(request, response);

}

}

XML文件

xmlns="https://www.wendangku.net/doc/bb2074432.html,/xml/ns/javaee"

xmlns:xsi="https://www.wendangku.net/doc/bb2074432.html,/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.wendangku.net/doc/bb2074432.html,/xml/ns/javaee https://www.wendangku.net/doc/bb2074432.html,/xml/ns/javaee/web-app_2_5.xsd">

Update

muta.servlet.Update

SearchById

muta.servlet.SearchById

Insert

muta.servlet.Insert

Delete

muta.servlet.Delete

Update

/Update

SearchById

/SearchById

Insert

/Insert

Delete

/Delete

index.jsp

应用Servlet实现购物车

应用Servlet实现购物车 具体实现过程 1、创建封装商品信息的值JavaBean---------GoodsSingle package com.yxq.valuebean; public class GoodsSingle { private String name; //保存商品名称 private float price; //保存商品价格 private int num; //保存商品购买数量public String getName() { return name; } public void setName(String name) { https://www.wendangku.net/doc/bb2074432.html, = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; }

public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } } 2、创建工具JavaBean-------- MyTools 实现字符型数据转 换为整型及乱码处理 package com.yxq.toolbean; import java.io.UnsupportedEncodingException; public class MyTools { public static int strToint(String str){ //将String型数据转换为int型数据的方法 if(str==null||str.equals("")) str="0"; int i=0; try{ i=Integer.parseInt(str); //把str 转换成

用 Servlet 进行文件上传的原理和实现

用Servlet 进行文件上传的原理和实现 Servlet 是用 Java 编写的、协议和平台都独立的服务器端组件,使用请求/响应的模式,提供了一个基于 Java 的服务器解决方案。使用 Servlet 可以方便地处理在 HTML 页面表单中提交的数据,但 Servlet 的 API 没有提供对以 mutilpart/form-data 形式编码的表单进行解码的支持,因而对日常应用中经常涉及到到文件上传等事务无能为力。 如何用 Servlet 进行文件的上传,必须编程实现。 一、基本原理 通过 HTML 上载文件的基本流程如下图所示。 浏览器端提供了供用户选择提交内容的界面(通常是一个表单),在用户提交请求后,将文件数据和其他表单信息编码并上传至服务器端,服务器端(通常是一个 cgi 程序)将上传的内容进行解码了,提取出 HTML 表单中的信息,将文件数据存入磁盘或数据库。 二、各过程详解 A)填写表单并提交

通过表单提交数据的方法有两种,一种是 GET 方法,另一种是 POST 方法,前者通常用于提交少量的数据,而在上传文件或大量数据时,应该选用 POST 方法。在 HTML 代码中,在

标签中添加以下代码可以页面上显示一个选择文件的控件。 在页面中显示如下(可能随浏览器不同而不同) 可以直接在文本框中输入文件名,也可以点击按钮后弹出供用户选择文件的对话框。 B)浏览器编码 在向服务器端提交请求时,浏览器需要将大量的数据一同提交给 Server 端,而提交前,浏览器需要按照 Server 端可以识别的方式进行编码,对于普通的表单数据,这种编码方式很简单,编码后的结果通常是 field1=value2&field2=value2&…的形式,如name=aaaa&Submit=Submit。 这种编码的具体规则可以在 rfc2231 里查到,通常使用的表单也是采用这种方式编码的,Servlet 的 API 提供了对这种编码方式解码的支持,只需要调用 ServletRequest 类中的方法就可以得到用户表单中的字段和数据。 这种编码方式( application/x-www-form-urlencoded )虽然简单,但对于传输大块的二进制数据显得力不从心,对于传输这类数据,浏览器采用了另一种编码方式,即 "multipart/form-data"的编码方式,采用这种方式,浏览器可以很容易的表单内的数据和文件一起。这种编码方式先定义好一个不可能在数据中出现的字符串作为分界符,然后用它将各个数据段分开,而对于每个数据段都对应着 HTML 页面表单中的一个 Input 区,包括一个 content-disposition 属性,说明了这个数据段的一些信息,如果这个数据段的内容是一个文件,还会有Content-Type 属性,然后就是数据本身。

servlet+JSP实现用户登录功能

servlet+JSP实现用户登录功能 一、Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。 这里以一个最常用的用户登录注册程序来讲解Servlet+JSP+JavaBean开发模式,通过这个用户登录注册程序综合案例,把之前的学过的XML、Xpath、Servlet、jsp的知识点都串联起来。 二、创建MVC架构的Web项目 在MyEclipse中新创建一个webmvcframework项目,导入项目所需要的开发包(jar包),创建项目所需要的包,在java 开发中,架构的层次是以包的形式体现出来的

一个良好的JavaWeb项目架构应该具有以上的11个包,这样显得层次分明,各个层之间的职责也很清晰明了,搭建JavaWeb项目架构时,就按照上面的1~11的序号顺序创建包:domain→dao→dao.impl→service→service.impl→web.controller→web.UI→web.filter→web.listener→util→junit.test,包的层次创建好了,项目的架构也就定下来了,当然,在实际的项目开发中,也不一定是完完全全按照上面说的来创建包的层次结构,而是根据项目的实际情况,可能还需要创建其他的包,这个得根据项目的需要来定了 在src目录(类目录)下面,创建用于保存用户数据的xml文件(DB.xml) 在WEB-INF目录下创建一个pages目录,pages目录存放系统的一些受保护(不允许用户直接通过URL地址访问)的jsp 页面,用户要想访问这些受保护的jsp页面,那么只能通过me.gacl.web.UI这个包里面的Servlet 创建好的项目如下图(图-1)所示: 图-1

javaweb之servlet

第4天:javaweb之servlet 考查的知识点:servetl的生命周期 1.Serlvet生命周期有关的方法是() (难度B) A.init(ServletConfig config) B.service(ServletRequest request,ServletResponse response) C.destory() D.getServletName() 答案:ABC 考查的知识点:http请求 2.Http缺省的请求方式是() (难度A) A.PUT B.GET C.POST D.TRACE 答案:B 考查的知识点:servlet基础 3.HttpServlet中,用来处理GET请求的方法是() (难度A) A.doHead B.doGet C.doPost D.doPut 答案:B 考查的知识点:servlet的配置 5.在部署Servlet时,web.xml文件中标签包含哪些子标签() (难度 C) A. B. C. D. 答案:ABCD 考查的知识点:servlet基础 6.以下哪一个类可以获取Servlet的初始化参数() (难度B) A.Servlet B.ServletContext C.ServletConfig D.GenericServlet 答案:C

考查的知识点:servlet的生命周期 7. 在servlet的生命周期中,容器只会调用一次的方法是() (难度B) A.service B.getServletConfig C.init D.destroy 答案:CD 考查的知识点:doGet方法 8.给定一个Servlet的doGet方法中的代码片断() (难度B) request.setAttribute(“name”,”zhang”); response.sendRedirect(“http://localhost:8080/servlet/MyServlet”) 那么在MyServlet中可以使用哪个方法把属性name的值取出 A.String str=request.getAttribute(“name”); B.String str=(String)request.getAttribute(“name”); C.String str=request.getParameter(“name”); D.无法取出 答案:D 考查的知识点:http响应头信息 10.下面哪一个指明向客户端发送的请求正文的MIME类型() (难度B) A.Content-Type B.Content-Encoding C.Content-Length D.全是 答案:A 考查的知识点:Servlet的实现方式HttpServlet 11.在javaEE中,对于HttpServlet描述正确的是() (难度B) A.自定义的Servlet继承了HttpServlet类,一定要覆盖掉service方法 B.HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法 C.HttpServlet类中处理客户请求和响应时所使用的两个接口是HttpServletRequest 和HttpServletResponse D.自定义的Servlet继承HttpServlet类,一般只需要覆盖doPost或doGet方法,不 必覆盖service方法,service方法会调用doPost或doGet 答案:BCD 考查的知识点:servlet的配置url-pattern 12.Servlet中,下面关于url配置方式正确的是() (难度B) A./my B./my/* C./*.do D.*.do

Servlet面试题

1.销毁一个session对象,应当调用下面哪一个方法() A. () B. () C. () D. () 2.以下哪个说法是正确的?(多选)( ) A. 每个Http请求对应一个单独的ActionServlet实例 B. 对于每个请求访问HelloAction的Http请求,struts框架只创建一个单独的HelloAction实例 C. 每个子应用对应一个单独的RequestProcessor实例 D. 每个子应用对应一个单独的文件 3. 在J2EE中,Servlet从实例化到消亡是一个生命周期。下列描述不正确的是()。 A. 在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束 Servlet就消亡了 B. init()方法是容器调用的Servlet实例的第一个方法 C. 在包容器把请求传送给Servlet之后,和在调用Servlet实例的doGet或者doPost 方法之前,包容器不会调用Servlet实例的其他方法 D. 在Servlet实例消亡之前,包容器调用Servlet实例的destroy()方法 4. 编写Servlet 的doPost方法时,需要抛出异常为()。 A. ServletException, IOException B. ServletException, RemoteException C. HttpServletException, IOException D. HttpServletException, RemoteException 5. 在Servlet里,能实现重定向的两个方法是()。 A. 运用接口的sendRedirect方法 B. 运用接口的sendRedirect方法 C. 运用接口的forward方法 D. 运用接口的forward方法 6. HTTP协议的全称是()。 A. Hyper Transport Text Protocol B. Hyper text Transport Protocol C. Hyper Transfer Text Protocol D. Hyper text Transfer Protocol 7. MVC设计模式包含模型层、视图层和控制器层,在下列组件中扮演控制器角色的是()。 A. Servlet B. JSP C. JavaBean D. HTML 8. 在中,HttpServlet的()方法用来处理客户端的请求。 A. Init() B. doPost()

Servlet实现增删改查功能 +jsp登录页面

MVC模式 M:Model,即模型,对于JavaBean V:View,即试图,对应JSP页面 C:Controller,即控制器,对应Servlet 1.以下为MVC实现一个简单的增删改查功能1>显示记录 2>增加一条记录 3>修改一条记录

4>删除一条记录 2.简单的登录界面及jsp对数据库的操作1>登录界面 2>注册界面 程序源代码:

M层:模型层 package MVC; public class JavaBean { private int id; private String name; private String password; private String sex; private int age; public JavaBean() { super(); // TODO Auto-generated constructor stub } public JavaBean(int id, String name, String password, String sex, int age) { this.id = id; https://www.wendangku.net/doc/bb2074432.html, = name; this.password = password; this.sex = sex; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { https://www.wendangku.net/doc/bb2074432.html, = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSex() { return sex;

第八章 Servlet技术习题

第八章Servlet技术 一、选择题 1.下面对Servlet、Applet的那一项描述错误?() A)Servelt与Applet相对应 B)Applet运行在客户端浏览器 C)Servlet运行在Web服务器端 D)Servlet和Applet不可以动态从网络加载 2.下面哪一项不在Servlet的工作过程中?() A)服务器将请求信息发送至Servlet B)客户端运行Applet C)Servlet生成响应内容并将其传给服务器 D)服务器将动态内容发送至客户端 3.下列哪一项不是Servlet中使用的方法?() A)doGet() B)doPost() C)service() D)close() 4.关于MVC架构的缺点,下列的叙述哪一项是不正确的?() A)提高了对开发人员的要求B)代码复用率低 C)增加了文件管理的难度D)产生较多的文件 5.下面哪一项对Servlet、JSP的描述错误?() A)HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。 B)JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。 C)当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行 D)一般用JSP来处理业务逻辑,用Servlet来实现页面显示。 6.下面哪一项对Servlet、JSP的描述错误?() A)Servlet可以同其他资源交互,例如文件、数据库 B)Servlet可以调用另一个或一系列Servlet E)服务器将动态内容发送至客户端 E)Servlet在表示层的实现上存在优势 7.下面哪一项对Servlet描述错误?() A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法 C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 8.下面哪一项对Servlet描述错误?() A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法 C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 9.下面Servlet的哪个方法载入时执行,且只执行一次,负责对Servlet进行初始化。()A)service() B)init() C)doPost() D)destroy()

JavaWeb应用实例servlet实现oracle基本增删改查(精)

Java Web 应用实例 servlet实现oracle 基本增删改查 分类:JAVA WEB应用实例2012-08-31 16:51 3515人阅读评论(0 收藏举报 https://www.wendangku.net/doc/bb2074432.html,/a542214712/article/details/7924444 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的,所以从今天开始,我将与大家分享一下我学JAVA WEB写的一些小实例,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深 废话不多话,开始我们的第一个实例: servlet实现oracle 基本增删改查 开发环境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g 首先附上数据库创建脚本: [sql]view plaincopy 1. create table student( 2. id VARCHAR2(50 PRIMARY KEY NOT NULL, 3. name varchar2(50 NOT NULL, 4. calssGrent varchar2(50 NOT NULL , 5. result varchar(12 NOT NULL 6. ; 7. insert into student(id,name,calssGrent,result values(perseq.nextval,'张三 ','33','98' 下图为代码结构图和功能演示界面做的比较糟糕只为实现功能:

MMC_01.java 页面 //主界面提供添加,修改删除的方法 [java]view plaincopy 1. package org.lsy.servlet; 2. 3. import java.io.IOException; 4. import java.io.PrintWriter; 5. import java.sql.Connection; 6. import java.sql.DriverManager; 7. import java.sql.ResultSet; 8. import java.sql.Statement;

Servlet增删改查案例经典实现

Add public class Add extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 编码问题 response.setContentType("text/html;charset=GBK");// 浏览器显示的编码,默认的是iso response.setCharacterEncoding("GBK");// 浏览器到数据库取数据时候使用的编码 request.setCharacterEncoding("GBK");// 浏览器到数据库存入数据时候所使用的编码方式 // 必须为post方式才行的 // 获取所提交表单的值 String id = request.getParameter("id"); // 严谨的编码: if ("".equals(id) || id == null) { response.sendRedirect("./Main.html"); // System.out.println("zzz"); return; } String name = request.getParameter("user"); // String name=new String(name1.getBytes(("GBK")));//"ISO-8859-1", int userage = Integer.parseInt(request.getParameter("age")); String addr = request.getParameter("address"); int userid = Integer.parseInt(id); // 调用dao层的方法进行添加到数据库的操作 Person p = new Person(); p.setId(userid); p.setName(name); p.setAge(userage); p.setAddress(addr); IPersonDao person = new PersonDaoImpl(); person.addPerson(p); // 添加过后则重定向,跳向查询全部的页面 response.sendRedirect("/Jsp/selectAll"); } // Post方法处理post的请求 public void doPost(HttpServletRequest request, HttpServletResponse response)

使用JSPSERVLETJDBC实现对数据库的增删改查(详细)(精)

使用JSP+SERVLET+JDBC实现对数据库的增删改查 首先,打开sql*plus,输入用户名(我用的scott)密码(我设置的是tiger)。先建个表student, Create table student ( id number(30 not null primary key, name varchar(50 , age number(30, gender varchar(30, major varchar(50 ; 1,打开myeclipse(我用的是myeclipse8.5)新建一个web project 2,在project name 中输入合法名字,比如normal 3,新建的normal工程

4,在src目录下建一个包,右击src选择new在选择package 5,输入合法名字比如bean 6,在bean目录下建一个class,右击bean选择new再选择class 7,输入名字Page 完整的Page.java代码如下 package bean; public class Page { private int totalPage; private int currentPage;

private int totalRecord; private int currentRecord; private int pageSize=8; //获得和设置当前页 public int getCurrentPage({ return currentPage; } public void setCurrentPage(int currentRecord,int pageSize{ if(currentRecord%pageSize==0{ currentPage=currentRecord/pageSize; } else{ currentPage=currentRecord/pageSize+1; } } //获得和设置当前记录 public int getCurrentRecord({ return currentRecord; } public void setCurrentRecord(int currentRecord{ this.currentRecord=currentRecord; } //获得和设置每页记录数量 public int getPageSize({ return pageSize;

简单Servlet开发

简单Servlet开发 一、实验目的: 在本次实验中,我们将利用Eclipse开发并测试几个简单的Servlet程序。学生通过本次实验可以更深入了解、验证Servlet的工作原理,掌握Servlet的开发步骤,从而进一步熟悉Eclipse 开发环境。 二、实验内容指导: 1. Servlet定义 Servlet 是一个用Java 编写的在服务器上运行以处理客户端请求的小程序,具体运行在servlet引擎管理的JVM上;Servlet容器负责servlet和用户的通信以及调用servlet 的方法;servlet和用户的通信采用请求/响应模式;以动态形式扩展Web服务器(Web container)的功能。 Servlet是开发服务器端应用程序的一个很好的选择,Servlet与JSP结合使用,提供更强大的服务器端的功能。 2.Servlet API Servlet框架核心是javax.servlet.Servlet接口,所有的servlet都必须实现该接口。用户开发自己的servlet类时,必须扩展以下两个类中的一个:GenericServlet类和HttpServlet类。本课程主要讲解、练习基于HTTP协议的Servlet,因此学生开发的Servlet 都需继承HttpServlet类。 如果自定义的Servlet类扩充HttpServlet类,通常不用实现service()方法,因为HttpServlet类已经实现了service方法,该方法的声明形式为: protected void service(HttpServletRequest req, HttpServletResponse res) throws servletException, IOException; HttpServlet的service方法首先从HttpServletRequest对象中获取HTTP请求方式的信息,然后再根据请求的方式调用相应的方法。例如,如果请求的方式为GET,那么调用doGet()方法;如果请求的方式为POST,那么调用doPost()方法。 在HttpServlet类中有6个do xxx方法:doPost, doPut, doGet, doDelete, doOptions, doTrace. 当使用不同的HTTP方法请求Servlet时,Servlet会调用相应的do xxx方法。 3.如何开发Servlet组件 创建用户自己的Httpservlet ,通常涉及以下4个步骤 ?扩展Httpservlet抽象类 ?覆盖Httpservlet抽象类的部分方法 ?利用HttpServletRequest获取HTTP请求信息 ?利用HttpServletResponse生成HTTP响应结果 这是一个简单的Servlet实例:

Servlet API 中文版

Servlet API 中文版 基本类和接口 一、javax.servlet.Servlet接口 servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。 Servlet接口的基本目标是提供生命期方法init()、service()和destroy()方法。 servlet接口中的方法 void init(ServletConfit config)throws ServletException 在servlet被载入后和实施服务前由servlet引擎进行?次性调用。如果init()产生溢出UnavailableException,则servle退出服务。ServletConfig getServletConfig() 返回传递到servlet的init()方法的ServletConfig对象void service(ServletRequest request, ServletResponse response)throws ServletException,IOException 处理request对象中描述的请求,使用response对象返回请求结果 String getServletInfo() 返回描述servlet的一个字符串 void destory() 当servlet将要卸载时由servlet引擎调用 二、javax.servlet.GenericServlet类(协议无关版本) GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。它可以用于模拟操作系统的端口监控进程。 servlet API提供了Servlet接口的直接实现,称为GenericServlet。此类提供除了service()方法外所有接口中方法的缺省实现。这意味着通过简单地扩展GenericServlte可以编写一个基本的servlet。 除了Servlet接口外,GenericServlet也实现了ServletConfig接口,处理初始化参数和servlet 上下文,提供对授权传递到init()方法中的ServletConfig对象的方法。 GenericServlet类中的方法 void destory() 编飞组成单词“destory”的一个注册入口 String getInitParameter(String name) 返回具有指定名称的初始化参数值。通过凋用config.getInitParameter(name)实现。 Enumeration getInitParameterNames() 返回此serv]et已编码的所有初始化参数的?个枚举类型值。调用config.getInitParameterNames()获得列表。如果未提供初始化参数,则返回?个空的枚举类型值(但不是null) ServletConfig getServletConfig() 返回传递到init()方法的ServletConfig对象ServletContext getServletContext() 返回在config对象中引用的ServletContext String getServletInfo() 返回空字符串 void init(ServletConfig config)throws ServletException 在一实例变量中保存config对象。编写组成单词“init”的注册入口,然后调用方法init()

【黑马程序员】实现一个Servlet类的三种方式

【黑马程序员】实现一个Servlet类的三种方式对于JavaEE开发者来说,一般企业开发中不会使用Servlet,但是对于一个初学者来说Web初级阶段的核心知识点就是Servlet。所谓Servlet其实就是Server + let,意为:运行在服务器端的小程序。主要作用就是接受用户发送的请求,进行处理最后将处理结果返回给用户。 编写一个Servlet需要实现Servlet接口,并实现里面的所有方法,如下图: 这些方法在Servlet运行的过程中主要涉及到三个,首先是创建的时候,会调用init方法。Servlet只会创建一次,所以这个方法只会调用一次。Servlet是用来处理客户端的请求,所以每次请求都会调用service方法进行处理。当项目被移除或者被关闭的时候会销毁Servlet,当然这里的关闭是正常关闭的情况,销毁Servlet会调用destroy方法,也只会调用一次。 除了实现Servlet接口之外,我们也可以直接继承Servlet的实现类GenericServlet,根据源码也可以看到GenericServlet其实就是一个“空壳”,里面没有具体的实现代码,所以如果继承了GenericServlet就需要我们重写里面的方法。所以在实际应用中实现一个Servlet常用另一种方式就是继承HttpServlet。HttpServlet继承了GenericServlet,重写了GenericServlet里面的方法,并在service方法中将

ServletRequest和ServletResponse转换成了带有http协议的HttpServletRequest和HttpServletResponse,如下源码 同时,我们在处理前端的请求时也不需要直接重写service方法,因为在HttpServlet中对service方法进行了处理,看下面源码截图:

jsp+javabean+servlet实现用户登录与注册

create database student; use student; create table user( id int primary key auto_increment, user varchar(50) not null, pwd varchar(50) not null, name varchar(50) not null, sex varchar(50) not null, age int(50) not null ); index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> 欢迎来到学生管理系统

用户登录

第八章servlet技术习题

第八章 Servlet技术 一、选择题 1.下面对Servlet、Applet的那一项描述错误() A)Servelt与Applet相对应 B)Applet运行在客户端浏览器 C)Servlet运行在Web服务器端 D)Servlet和Applet不可以动态从网络加载 2.下面哪一项不在Servlet的工作过程中() A)服务器将请求信息发送至Servlet B)客户端运行Applet C)Servlet生成响应内容并将其传给服务器 D)服务器将动态内容发送至客户端 3.下列哪一项不是Servlet中使用的方法() A)doGet() B)doPost() C)service() D)close() 4.关于MVC架构的缺点,下列的叙述哪一项是不正确的() A)提高了对开发人员的要求 B)代码复用率低 C)增加了文件管理的难度 D)产生较多的文件 5.下面哪一项对Servlet、JSP的描述错误() A)HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。 B)JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。 C)当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行 D)一般用JSP来处理业务逻辑,用Servlet来实现页面显示。 6.下面哪一项对Servlet、JSP的描述错误() A)Servlet可以同其他资源交互,例如文件、数据库 B)Servlet可以调用另一个或一系列Servlet E)服务器将动态内容发送至客户端 E)Servlet在表示层的实现上存在优势 7.下面哪一项对Servlet描述错误() A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法 C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 8.下面哪一项对Servlet描述错误() A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法 C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 9.下面Servlet的哪个方法载入时执行,且只执行一次,负责对Servlet进行初始化。() A)service() B)init()

java实现利用HTTP基于servlet上传文件至服务器

Java客户端程序fileupload.java import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import https://www.wendangku.net/doc/bb2074432.html,.HttpURLConnection; import https://www.wendangku.net/doc/bb2074432.html,.URL; public class fileupload { public static String upload(String actionUrl,String FileName)throws IOException{ String BOUNDARY = java.util.UUID.randomUUID().toString(); String PREFFIX = "--", LINEND = "\r\n"; String MULTIPART_FROM_DATA = "multipart/form-data"; String CHARSET = "UTF-8"; URL uri = new URL(actionUrl); HttpURLConnection conn = (HttpURLConnection) uri.openConnection();// 设置从主机读取数据超时 conn.setReadTimeout(10 * 1000); conn.setDoInput(true); conn.setDoOutput(true); conn.setUseCaches(false); conn.setRequestMethod("POST"); conn.setRequestProperty("connection", "keep-alive"); conn.setRequestProperty("Charset", "UTF-8"); conn.setRequestProperty("Content-Type", MULTIPART_FROM_DATA + ";boundary=" + BOUNDARY); DataOutputStream outStream = new DataOutputStream( conn.getOutputStream()); if (FileName != null) { // 构建发送字符串数据 StringBuilder sb1 = new StringBuilder(); sb1.append(PREFFIX); sb1.append(BOUNDARY); sb1.append(LINEND); sb1.append("Content-Disposition: form-data; name=\"file\"; filename=\"" + FileName + "\"" + LINEND); sb1.append("Content-Type: application/octet-stream;chartset="

jsp servlet实现的学生宿舍管理系统源码

大家好,今天给大家演示一下由jsp实现的一款学生宿舍管理系统,该项目实现了学生信息、宿舍信息、管理员信息、考勤信息等的管理功能,学生、宿管、系统管理员登录后系统显示不同的界面。数据库采用的是mysql,功能结构层次非常清晰,是Java学习参考非常难得的好项目。下面我们来看看如何运行。 1.将项目导入到eclipse中; 2.导入之后发现没有错误,如果有错误的话可能是jre需要配置一下,我来演示一下如何配置jre。 3.还有一种情况,就是在你的eclipse或者myeclipse从没运行过Java web程序的时候,就是说tomcat没有配置的时候,可能会出现httpservlet错误的提示,此时有两种方法可以解决,(1)配置tomcat,运行项目的时候选择配置的tomcat,我来演示一下。还有一种是添加一个httpservlet的jar包,这个包我会放在项目根目录下,当然如果你以前运行过Java web项目,那么上面那些问题都不会出现。 4.接下来我们配置数据库信息,在文件中,配置自己的mysql用户名和密码; 5.将数据库文件导入到mysql中,我们用的是navicat工具; 6.成功导入后就可以运行了,下面是运行结果; 成功运行后的界面,登陆界面:

首先我们选择系统管理员来登录,用户名是admin,密码是111: 可以看到,系统管理员有宿管管理、学生管理、宿舍楼管理、考勤管理等功能,我们一个一个来看看: 宿舍管理员管理: 学生信息管理: 宿舍楼管理: 考勤记录管理: 接下来我们用宿舍管理员账号登录: 宿舍管理员查看学生信息、考勤信息:

考勤管理: 接下来我们用学生的身份登录: 学生可查看自己的考勤信息: 以上就是系统的主要功能,演示就到这里吧,谢谢!

相关文档
相关文档 最新文档
用户名: