zoukankan      html  css  js  c++  java
  • javaEE(1)_web开发入门

    一、WEB开发的相关知识

    1、WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。 Internet上供外界访问的Web资源分为: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。 静态web资源开发技术 Html,常用动态web资源开发技术: JSP/Servlet、ASP、PHP等.在Java中,动态web资源开发技术统称为Javaweb.

    2、学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。

    3、web服务器也是Java程序写的,启动服务器的时候会首先查找jdk.所以启动前要安装jdk和设置环境变量。

    4、一个简易web服务器原理:

    public class Server {
        public static void main(String[] args) throws Exception {
            ServerSocket ss = new ServerSocket(9090); 
            Socket s = ss.accept();
            FileInputStream fis = new FileInputStream(new File("D:/html/a.html"));
            OutputStream os = s.getOutputStream();
            //下面这段代码是一个模型
            byte[] buffer = new byte[1024];
            int len=0;
            while((len=fis.read(buffer))>0){
                os.write(buffer, 0, len);
            }
            os.close();
            fis.close();
            s.close();
            ss.close();
        }
    }

    浏览器通过http://localhost:9090即可访问a.html页面,http协议默认端口是80,web应用上线时,端口要改为80,这样用户就不用输入端口号。

    二、Tomcat目录结构

    三、web应用和虚似目录的映射

    WEB应用程序指供浏览器访问的程序,通常也简称为web应用。一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件、Jsp文件、java程序、支持jar包、配置文件等等…..组成web应用的这些文件通常我们会使用一个目录组织,这个目录称之为web应用所在目录,也就是web应用根目录。Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。

    虚似目录的映射有三种方式:

    1、在server.xml文件的host元素中配置,例如:

    补充知识点:映射缺省web应用,path=""。
    注意:一个Context即代表一个web应用,context元素在配置文件中除用于映射虚似目录外,它还可用于为web应用配置一些资源,例如:配置web应用使用的数据库连接池,javamail session等(这些本配置以后会用到)。

    2、在Tomcat6中,不再建议在server.xml文件中配置context元素,细节查看tomcat服务器关于context元素的说明。
    3、让tomcat自动映射: tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问,开发一般直接放在这里即可,不需要再配置映射,这也就是在eclipse环境下部署项目时要把一个deploy path改为webapp的原因,否则服务器不会自动发布其它目录下的web应用,还需要在server.xml中配置。

    四、web应用组织结构和web.xml文件的作用

    1、开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。

    2、Web.xml文件是整个web应用中最重要的配置文件,它必须放在WEB-INF目录中。在开发web应用时,但凡涉及到对web应用中的web资源进行配置,通通是在web.xml文件中进行设置。例如:某个web资源配置为网站首页、将servlet程序映射到某个url地址上、为web应用配置监听器、为web应用配置过滤器......

    五、配置虚似主机

    在一个tomcat服务器中可以放置多个网站,所谓配置虚似主机,就是在tomcat服务器中配置一个网站。如需在WEB服务器中配置一个网站,需使用Host元素进行配置(一个host是一个网站),例: <Host name=”site1” appBase=”c:app”></Host>,配置的主机(网站)要想被外部访问,必须在DNS服务器或本地windows系统中注册。

    六、其它一些问题

    1、tomcat体系结构

    Host是主机,Context是web应用。

    2、web资源的访问过程,如:浏览器输入http://www.sina.com/mail/a.html,首先查看windows的host文件获取主机名对应的ip,如果没有则上DNS服务器获取(如果直接输入新浪的ip则访问新浪的默认主机这个是在engine里面配置的),然后用得到的ip访问sina服务器,通过发送http请求:

    然后sina的web服务器从请求信息中获取客户端要访问的主机(因为一个web服务器可以配置多个主机,也就是多个网站),然后从请求信息中得到要访问的web应用,再获得要访问的web资源,然后sina服务器去读取相应主机下的相应web应用下的资源,最后用读取到的web资源创建一个http响应,返回给客户端。

    3、打包web应用为war包,web服务器可以自动解压, cmd相应目录下执行    jar -cfv   名称.war  名称

    4、配context元素的reloadable元素,让tomcat自动加载更新后的web应用,一般不配,容易加重tomcat负担。

    七、密码学基础和配置tomcat的https连接器

    1、用户提交比较重要的表单,比如注册或登录的时候,是要对提交的数据进行加密的(一般是对密码加密)。

    2、对称加密,使用相同的密钥进行加密和解密,这种加密有致命的漏洞,就是密钥无法以任何可靠途径传递给需要加密的另一方。

    3、非对称加密,采用非对称加密算法生成一对公钥和私钥,公钥加密的数据只能私钥解,私钥加密的数据只能公钥解,黑客只拿到其中一个是无法解密数据的,暴力破解需要无限长时间,相当于不可破解。但是此过程还是有漏洞,例:

    下图是一个蒋介石要和宋美龄通信的模型:

    注:蒋介石请求和宋美龄进行通信,此时可以将宋美龄比作Tomcat服务器,蒋介石比作客户端浏览器,此时首先宋美龄应用非对称加密算法产生一个公钥私钥,将公钥给蒋介石,蒋介石将数据用这个公钥加密后的数据传递给宋美龄,宋美龄用自己的私钥就可进行解密,这个公钥的话是不怕被方立勋窃取的,因为即使窃取了也无法破解,所有这就解决了对称加密中密钥无法安全传递的问题。但这里面还有问题,宋美龄给蒋介石公钥的这个过程,可能被方立勋截获,然后方立勋生成一对方的公钥和私钥,然后将方的公钥传递给蒋,蒋用方的公钥加密后传递给宋的过程又被方截获,这时方就可以用自己的私钥解密这条数据,这里面需要解决的问题其实就是蒋介石如何确定给自己公钥的是宋,这时就有了CA机构来对宋进行担保,也就是认证,这时宋就不是直接给蒋公钥,而是用数字证书这样一种形式来给蒋公钥,蒋通过安装数字证书来拿到宋的公钥,而蒋就是浏览器可以判断这个是不是宋,浏览器提供这样的功能支持,确定是宋以后才会加密数据发送给宋。这里面其实还有问题,目前只是蒋能确实来的是不是宋,而宋还无法确定来的是不是蒋,这时通过数字签名来实现的,先了解到这里即可,以后用到再深入。

    4、tomcat的https连接器的配置

    首先在cmd环境下,使用keytool -genkey -alias tomcat -keyalg RSA生成数字证书就是一个.keystore的密钥库文件,生成这书过程要输入密钥库密码比如123456,将这个文件放到conf目录下,然后通过tomcat的server.xml中配置如下

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
          maxThreads="150" scheme="https" secure="true"
          clientAuth="false" sslProtocol="TLS" keystoreFile="conf/.keystore" keystorePass="123456"/>

    这样在浏览器中输入https://localhost:8443浏览器会出现证书不安全界面,点击继续就获得了https的连接。目前只配置了https单向连接,实际开发会配置https双向连接,也就是数字签名的问题,这里不深入。

    ps:之前项目中就是登录注册采用https连接,而其它请求还是采用http连接。

    八、tomcat服务器的管理平台,这个东西还是很有用的

    需要在conf omcat-users.xml文件中配置角色和用户以及密码,这样即完成服务器端的配置,配置如下:

      <role rolename="tomcat"/>
      <role rolename="role1"/>
      <role rolename="manager-gui"/>
      <user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>
      <user username="both" password="tomcat" roles="tomcat,role1"/>
      <user username="role1" password="tomcat" roles="role1"/>

    这样在客户端输入http://localhost:8080即可进入tomcat主界面,点击manager webapp即可完成项目的部署,删除,停用等,还可以直接上传war文件完成项目部署。

    ps:用户名和密码千万不能泄露,否则后果不堪设想。

  • 相关阅读:
    Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别
    用foreach遍历 datagridView 指定列所有的内容
    treeView1.SelectedNode.Level
    YES NO 上一个 下一个
    正则 单词全字匹配查找 reg 边界查找 精确匹配 只匹配字符 不含连续的字符
    抓取2个字符串中间的字符串
    sqlite 60000行 插入到数据库只用不到2秒
    将多行文本以单行的格式保存起来 读和写 ini
    将秒转换成时间格式
    richtextbox Ctrl+V只粘贴纯文本格式
  • 原文地址:https://www.cnblogs.com/wangweiNB/p/4892926.html
Copyright © 2011-2022 走看看