# Debugging applications on a server

You can debug applications on a server to detect and diagnose errors in your application. Use the TCP/IP monitor view to view data sent and received over the ports of the server. In addition, use the debugging tools in the workbench to control running your application on the server by setting breakpoints, suspending threads, stepping through the code, and examining the contents of the variables. You can debug the following artifacts on a server without losing the state of your application:

- Debugging a servlet on a server
  The debugger enables you to detect and diagnose errors in your application. It allows you to control the execution of your program by setting breakpoints, suspending threads, stepping through the code, and examining the contents of the variables. You can debug a servlet on a server without losing the state of your application.
- Debugging a JSP file on a server
  The debugger enables you to detect and diagnose errors in your application. It allows you to control the execution of your program by setting breakpoints, suspending threads, stepping through the code, and examining the contents of the variables. You can debug a JavaServer Pages (JSP) without losing the state of your application.
- Monitoring server ports
  You can monitor server ports to view data sent and received over the ports of the server. Using the Properties page of a server, you can select from a list of the available types of server ports to monitor. Examples of types of server ports you can monitor are Hypertext Transfer Protocol (HTTP), the administrative port of the server, proxy and many other vendor-specific ports.