Skip to content

Latest commit

 

History

History
20 lines (16 loc) · 3.94 KB

File metadata and controls

20 lines (16 loc) · 3.94 KB

Web Server Programming Java

WEB-Server-Programming-Java

Prerequisites

  • Programming Fundamentals (TKT10002)
  • Advanced Programming Course (TKT10003)
  • Database Fundamentals (TKT10004)

Course Parts Overview

Part Themes Competence Objectives
1 Introduction to how web applications work and the basic components of the internet • Know the basics of how the Internet works
• Familiar with concepts of URI, DNS, HTTP and HTML
• Familiar with concepts of path and request parameter
• Familiar with basic structure of GET and POST type requests at HTTP protocol level
• Recognize parts of HTTP protocol response from server
• Familiar with client-server model
• Know how to implement a simple server and browser
• Superficially familiar with Spring Boot application framework
• Know how to create a web application that responds to requests
2 Views, databases and database abstractions • Use Thymeleaf library to create pages for views
• Send data to the server and process data sent to the server
• Familiar with POST/Redirect/GET design pattern
• Familiar with concept of ORM
• Utilize database abstraction provided by Java and Spring Boot for data processing
• Handle applications containing a single database table
• Familiar with concept of path variable and use path variables in applications
3 Databases and database abstractions. References between database tables, filtering and organizing results • Handle applications containing multiple database tables
• Know how to define references between database tables
• Know how to handle transactions programmatically
• Familiar with N+1 query problem and methods to avoid it
• Know how to organize and limit information retrieved from database
4 Media types and file storage. Software development process, layered architecture and automated application testing. Moving an application to the web • Know concept of media type and how to handle files in database
• Basic understanding of different stages of software development process
• Know architectural patterns suitable for web applications
• Understand layered architecture
• Know how to divide parts of application into services
• Write automatically executed tests for applications
• Know how to transfer application to the network for public access
5 HTTP protocol and cookies. Authentication and authorization • Familiar with concept of statelessness
• Know what cookies are and their purpose
• Familiar with essential legal issues related to cookies
• Explain differences between authentication and authorization
• Create application that asks user to log in
• Define paths and methods that require logging in
• Hide parts of view from different user groups
6 Repeating structures and fragments. Using style sheets. Validating inputs. Interfaces and REST • Know methods for defining and reusing recurring page structures
• Know what Twitter Bootstrap is and use it to define styles
• Know methods for validating data and validate form data
• Know concept of interface and REST interfaces
• Implement service that provides data over REST-formatted interface
7 Browser software and server software. A little bit of security. Application scalability. Reactive programming • Know how to make JavaScript request to server from browser
• Update view displayed in browser based on JavaScript response
• Know most typical vulnerabilities in web applications (OWASP)
• Know methods for scaling applications for large user groups
• Know basics of reactive programming
• Create simple server software using reactive programming paradigm