返回列表 发帖

关于JSP的网站

来到这里看到大家的发表的题目都很厉害,可惜就是没看见几个做JSP网站的资料,希望能以后看到些这样的资料,先从我做起。日后陆续的会发表些个人有关做J2EE的资料。献丑了 :em14:

关于JSP的网站

谢谢楼主  期盼早日看到

TOP

关于JSP的网站

基础一:配置WEB服务器 首先说的是JSP的运行环境,不用多说JSP是J2EE的技术之一,要想让这位大哥跑起来首先最次的是你要有个tomcat5.0以上的WEB服务器(能跑JSP的WEB容器除了“小猫”外还有“红领巾”和JBOSS等等),我们现在拿小猫来举例。在环境变量里配置好JAVA的JDK路径跟TOMCAT的路径后{例如: 变量名:JAVA_HOME 变量值: D:\j2sdk1.4.2 变量名:TOMCAT_HOME 变量值:C:\Program Files\Apache Software Foundation\Tomcat 5.0 (我把tomcat5.0安装在默认的C盘Program Files目录下。 }然后在C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps目录下 创建一个叫myoa的目录,由于是JAVA的概念 所以在myoa目录内必须在添加一个WEB-INF的目录(你可以从ROOT里直接拷贝一个WEB-INF的目录,有了以上的东西现在我们可以开始写一个最简单的JSP页面了。 { <%@ page language="java" contentType="text/html;charset=gb2312"%> <%!String getDate() { return new java.util.Date().toString();//调取日期函数转换为字符串格式 } %> JAVA时间例子

现在的时间是:<%=getDate()%>

} 运行起TOMCAT在IE栏中输入{http://127.0.0.1:8080/myoa }就可以看到页面上输出的效果了,很简单只是输出了当前的时间。猛的看起来JSP使用的方式跟ASP很相似。其实编写JSP是件很麻烦的事情(一个好的JSP网站或者办公系统),下次我会给大家介绍一下页面提交的不同 。小弟在各位网页高手面前献丑了。

TOP

关于JSP的网站

基础二: 页面提交 这次做一个简单的页面提交,可以让大家看看它具体与ASP不同之处。 例子1: {该页面名为add.jsp <%@ page language="java" import="com.oa.bean.*,java.util.*" contentType="text/html;charset=gb2312"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> 修改合同信息

修改合同信息

员工ID:

合同截止时间:

合同类型:

}以上各位可以看到我写了个模拟修改合同信息的页面,我把它提交到upBargain.jsp的后台页面去处理了(稍后我会写后台执行的方法),说白了就是把数据库的insert 插入数据的方法写在upBargain.jsp页面里了,执行数据库操作都在upBargain.jsp里了, 那这跟ASP还有甚麽区别啊???是如果真的这样写就没必要用JSP来做了因此 例子2: {
}这行没变,可变的是upBargain.jsp页面里处理的方式。首先我们先把数据库的操作分离出来写成一个类(叫它Bean)此处的代码最好请用JAVA专用开发工具来写 编写好的类保存到myoa\WEB-INF\classes\com\oa\bean目录内 { package com.oa.bean; import java.sql.*; //==================================== //功能:一个专门连接数据库的bean //==================================== public class DatabaseBean{ public Connection ct=null; public Connection getConnection(){ if (ct == null) { try { //连接MS SERVER Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); ct = DriverManager.getConnection( "jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=myoa", "sa", "$68570446"); /*连接MYSQL Class.forName("com.mysql.jdbc.Driver"); DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String dbUrl="jdbc:mysql://localhost:3306/OA?"; String dbUser="root"; String dbPwd="123456"; ct=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd); */ } catch (Exception ex) { ex.printStackTrace(); } } return ct; } public void closeConnection(){ if(ct !=null){ try { ct.close(); } catch (SQLException e) { e.printStackTrace(); } } } } getConnection()是用来实现与数据库连接的方法,我用的是JDBC装载驱动的方式来实现与数据库的连接,当然还有几种办法也可以实现数据库连接。 }下面还需要的是在写两个类一个是数据库的插入类跟接受与发送数据的类 {SetBargainBean 接受与发送数据 package com.oa.bean; //员工合同表 public class SetBargainBean { int empid;//ID String bbedate;//生效时间 String batdate;//解除时间 String bargaintype;//合同类型 String empname;//姓名 String deptname;//部门 public String getBatdate() { return batdate; } public void setBatdate(String batdate) { this.batdate = batdate; } public String getBbedate() { return bbedate; } public void setBbedate(String bbedate) { this.bbedate = bbedate; } public int getEmpid() { return empid; } public void setEmpid(int empid) { this.empid = empid; } public String getBargaintype() { return bargaintype; } public void setBargaintype(String bargaintype) { this.bargaintype = bargaintype; } public String getDeptname() { return deptname; } public void setDeptname(String deptname) { this.deptname = deptname; } public String getEmpname() { return empname; } public void setEmpname(String empname) { this.empname = empname; } } }在写一个SelectBargainBean 数据库的插入类 {SelectBargainBean package com.oa.bean; import java.sql.*; import java.util.ArrayList; import java.util.Collection; import java.io.*; import java.com.oa.bean.SetBargainBean; //存入合同数据 public class SetBargainBean { public void insertBargain(SetBargainBean abaf)//引用SetBargainBean对象来取从页面接受的数据 { DatabaseBean db = new DatabaseBean();//取出数据库连接的方法 Connection con;//数据库连接 PreparedStatement stmt;//创建一个SQL的欲处理语句 String sql="insert into bargain (empid,batdate,bargaintype) values(?,?,?)"; try{ con=db.getConnection(); stmt=con.prepareStatement(sql); stmt.setInt(1,abaf.getEmpid()); stmt.setString(2,abaf.getBatdate()); stmt.setString(3,abaf.getBargaintype()); stmt.execute(); con.close(); }catch(Exception ex){ ex.printStackTrace(); } } } }以上就是我们把数据库的基本操作给分成三步1.数据库连接 2.数据传送 3.数据库插入 完成以上三步后我们就可以在upBargain.jsp里写后台处理了 {upBargain.jsp页面 <%@ page language="java" import="com.oa.bean.*,java.util.*" contentType="text/html;charset=gb2312"%> <% selectbargain.insertBargain(SetBargainBean abaf);//执行数据库插入 response.sendRedirect("add.jsp");//返回添加页面 %> }这样做的好处是我们把数据库的操作细分化了而且还给封装好了,增强了安全性。但是上面的做法并不是J2EE所提倡的。虽然它细分了各个功能,但是后台的处理速度并不高,而且对于以后做大的网站或办公系统的维护是不易的。所以还有两种办法 {add.jsp页面中提交到Servlet或STRUTS中去执行。 upBargain不在是一个页面了,而是一个Servlet类了,在Servlet中你可以调用以上写的数据库操作的类,执行后在发送到需要的页面去。 }另一种是STRUTS { 这种效果要比以上的方法都好,而且对于网站的扩展很有好处,在下次我会细讲STRUTS的 } 以上说的这些是为了让各位了解JSP的开发主要是为了把需要实现的功能方法都封装起来,这样调用的时候非常方便,而且安全性要比ASP高的多。它的缺点是小型项目网站不适合这样做,大家也看到了就仅仅是插入了数据就写了不少的东西。而且如果细分起来还要细分处很多的类。可是对于大型的项目来说这样做对于后期的开发以及升级都很容易。好先写这麽多 下次再说。

TOP

关于JSP的网站

基础三:Servlet 甚麽叫Servlet?Servlet就是运行与服务器端的程序,JSP就是基于Servlet的技术构架。 使用Servlet Servlet最大的好处就是给开发人员处理客户端传来的HTTP请求,并返回一个响应。Servlet是一个JAVA类,如果需要使用Servlet的话需要在Web.xml中对它进行部署一下才能使用。例如 { SelectfagServlet //自定义的Servlet的使用名称 com.jspl.SelectfagServlet//指定Servlet的存在路径 SelectfagServlet//定义的Servlet的使用名称 /hello//使用时引用的名称映射 /demotag //定义页面需要引用的标签名 /WEB-INF/mytag.tld //这里是自定义标签 }以上我引用了一个简单的servlet部署,首先在WEB.XML中要的属性中写明定义的servlet的名称(可以自定义名字)以及它所在的路径(com.jspl.SelectfagServlet意思是在com目录里的jspl目录中有SelectfagServlet.class这个Servlet) 下面写个简单的Servlet {SelectfagServlet类 package com.jspl; import javax.servlet.*; import javax.servlet.http.*; public class SelectfagServlet extends HttpServlet { //接受用户的请求doGet是Servlet指定的方法,不可随意修改名称 public void doGet(HttpServletRequest req,HttpServletResponse res){ response.setContentType("text/html;charset=gb2312");//指定为中文页面格式 PrintWriter.out=response.getWriter();//引用out输出对象 out.println(""); out.println(""); out.println("Servlet输出的页面"); out.println(""); out.println(""); out.println("
"); out.println("
"); out.println("Servlet输出的页面"); out.println("
"); out.println(""); } //doPost和doGet处理一样 public void doPost(HttpServletRequest req,HttpServletResponse res){ try { doGet(req,res); } catch (Exception ex) { } } } }运行WEB服务器后在IE里输入{http://127.0.0.1:8080/jspl/hello }就会看到运行的效果,在这里我们并没有写任何的JSP页面或HTML页面,可却输出了HTML页面的效果,因为所有的JSP页面最后都会转换为Servlet的方式输出到客户页面的。out.println("");就是向客户端发送的HTML格式字符串。当然Servlet还有很多的使用功能与特点,我只是简单的用一个例子来解释Servlet运行的过程,在Servlet中你可以写很多的处理事件方法或功能方法,包括数据库的操作。在下次我将会介绍JSP的9大对象结合Servlet的使用。

TOP

关于JSP的网站

真想写点狠的东西可须要细说的东西太多,而且本人编程水平也有限。到这里现眼已经够不知羞耻的了。以后我会把我的项目中的部分代码公布出来给大家做个参考的,在下献丑了。

TOP

关于JSP的网站

有空交流下吧,学过点JSP,写过点小东东。。

TOP

关于JSP的网站

呵呵,搂主已经做的不错了。如果要深谈的话下一步就到Struts、Sping、Hibernate了。

TOP

关于JSP的网站

是啊楼上的朋友 我想继续把Struts 跟Hibernate以后给大家细说说,可怕本人水平有限可能会有说错的地方,还请各位朋友见谅了。

TOP

关于JSP的网站

[这个贴子最后由我是中国人在 2006/02/20 11:02pm 第 1 次编辑] 基础四:JSP九大对象(上) 在JSP页面中为了方便给程序员开发,所以特意提供了九个常用的对象,它们的特点就是这些内致的对象是不许要实例化就可以使用的。它们是由容器所管理的(WEB) 1.request 接受对象 2.response 发送对象 3.pageContext 上下文对象 4.session 用户信息对象 5.application 服务器端保存信息对象 6.out 输出对象 7.config 初始化对象 8.page JSP页面实例对象 9.exception 错误处理对象 以上这九个对象对于使用ASP来编程的朋友最熟悉的莫过于1,2,4,5这四个对象了。以上这九个对象具体详细的介绍我就不多写了,现在我只写些它们常用的实例方法 {request response session的使用例子 name:
pass:
以下是check_login.jsp的验证 <% String name=request.getParameter("name"); String password=request.getParameter("pwd"); if(name.equals("tom"))//比较如果用户名是tom { session.setAttribute("name",name);//把用户名做为对象存入到session中 response.sendRedirect("logok.jsp");//发送到logok.jsp页面 }else{ response.sendRedirect("../error.jsp");//否则发送到error.jsp } %> logok.jsp页面 <%=session.getAttribute("name");%>//这是取出session中对象的方法,直接取出名称就可以了。 }这只是个小例子下面我会整理起来一起使用。 { 先写个SelectMenBean的类 //实现查询公司员工的详细资料类 package com.oa.bean; import java.sql.*; import java.util.ArrayList; import java.util.Collection; import java.io.*; import com.oa.form.UpMenActionForm; public class SelectMenBean { public ResultSet getsql(String id)//查询单项个人数据 { DatabaseBean db = new DatabaseBean();//取出数据库连接 Connection con; Statement stmt; ResultSet rs; int vid=Integer.parseInt(id); try{ con = db.getConnection(); stmt = con.createStatement(); rs = stmt.executeQuery("select * from archives where empid=';"+vid+"';"); return rs; }catch(SQLException ex){ ex.printStackTrace(); } return null; } } 这是页面调用 <%@ page language="java" import="com.oa.bean.*,java.util.*,java.sql.*" contentType="text/html;charset=gb2312"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> 员工资料


员工信息



<% //做页面验证 int syid=0; SessionBean sion=(SessionBean)session.getAttribute("SessionBean"); syid=sion.getYz(); if(syid!=1) { response.sendRedirect("../error.jsp"); } %> <% try{ ResultSet rs=selectmen.getsql((String)request.getParameter("id")); while(rs.next()) { out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("

"); out.println("

"); } }catch(Exception e) { e.printStackTrace(); } %>
ID:"+rs.getInt("empid")+"姓名:"+rs.getString("empname")+"性别:"+rs.getString("sex")+"
部门:"+rs.getString("deptname")+"电话:"+rs.getString("phone")+"地址:"+rs.getString("address")+"
省:"+rs.getString("province")+"市:"+rs.getString("city")+"电子邮件:"+rs.getString("email")+"
民族:"+rs.getString("nation")+"婚否:"+rs.getString("wedded")+"学历:"+rs.getString("education")+"
毕业学校:"+rs.getString("university")+"个人简历:"+rs.getString("sstatement")+"档案所在地:"+rs.getString("aaddress")+"
档案编号:"+rs.getString("anumber")+"工资等级:"+rs.getString("sgrade")+"在职情况:"+rs.getString("inaservice")+"个人照片:
返回 }这是一个JSP页面通过查询数据库后把数据显示在页面的例子,由于是例子直接用out把页面的脚本输出到客户页面去了,其实这在真实项目中是绝对不允许这样做的。解决的办法是用标准标签库或者使用STRUTS标签库在页面来配置页面的部署,并且把具体的调用查询方法都封装到另外一个Bean类或者Servlet类当中,在页面里我们只接收到Bean或者Servlet传来的参数直接显示到页面当中就可以了。以后我会讲到这些标签的使用,在下次我会继续讲余下的对象的使用方法。

TOP

关于JSP的网站

哇!厉害,我对程序不太熟。请多多指教哦~ 多多关注指教我们板块!

TOP

关于JSP的网站

抱歉各位朋友,这几天项目赶的紧,所以晚上我不能抽出时间来继续写了,等忙过这阵子后我会继续接着写的。谢谢各位朋友的捧场了。我知道在座的各位当中都是比我强的网站高手,我只是到这里来班门弄斧了。

TOP

关于JSP的网站

  靠    这个世界真的是高手如云啊     个个玩制作玩的出神入化   实在是佩服佩服啊   

TOP

返回列表 回复 发帖